如何从套接字获取IP地址在Windows中

问题描述:

我在Windows中拥有DWORD套接字。我需要知道它是否连接到互联网,或者是否是本地连接,以及某种形式的本地主机。有没有一种很好的方法从套接字获取套接字在windows中的连接地址?或者有更好的方法来判断连接是否是本地连接?如何从套接字获取IP地址在Windows中

+0

你必须小心使用IPv6。你很可能没有自己创建套接字(否则你可能记得它连接的是什么),所以你可能正在处理在别处创建的一些套接字。由于这不在你的控制范围内,它可能会使用IPv6。 – MSalters 2009-07-15 11:43:20

您可能要拨打getpeername()。使用它是非常基本的,你通过一个sockaddr指针和一个长度,它会为你填充数据。

至于确定连接是否为本地,getaddrinfo()可以给你一个所有可用本地地址的列表。您会将getpeername()的结果与本地地址列表进行比较。