获取全球IP地址

时间:2010-07-10 21:02:24

标签: c++

如何(在C ++中)获取计算机的全局 IP地址(Windows XP)?

4 个答案:

答案 0 :(得分:4)

你不能。

您可以确定各种接口上的IP地址,并且可能有多个IP地址。这些可能是局域网IP(10.0.0.0/8,192.168.0.0/16等),也可能是互联网可路由的。

您似乎在问“我是否有192.168.0.3,如何获取我的互联网IP?”没有函数调用来执行此操作:这样的IP可能存在,它可能不存在,甚至可能存在多个。

最接近的是让互联网上的已知计算机告诉您:连接到其他计算机,并要求他们发回他们认为您的IP地址。有一些网站为此,有些甚至可能有API来做到这一点。

我觉得有些家用路由器也可以通过uPnP告诉你,但同样,这不会涵盖所有可能的情况。

答案 1 :(得分:1)

在Windows上,您需要获取本地主机名,然后将其传递给winsock2中的gethostbyname函数,该函数将返回关联的IP地址。

示例:http://tangentsoft.net/wskfaq/examples/ipaddr.html

Linux的堆栈溢出答案:

Get the IP address of the machine

答案 2 :(得分:1)

您必须向http://whatismyipaddress.com/等网站发出请求,并在其中提取显示您的IP的字符串。

答案 3 :(得分:1)

使用此纯文本IP网址:get ip