3

假设我目前的 IP 是:123.123.123.123

如何以编程方式获取该字符串?

注意:我不想获得这个 IP: 192.168.0.10,我想要其他人可以使用该 IP 通过 HTTP 或其他任何方式连接到我的计算机。

注意:我不想打开诸如 ip4.me 之类的网页来获取地址,我只想用 C++ 来获取它。

我试图用谷歌搜索,但每个建议都是“加载一个页面并阅读它告诉你的 IP”。这真的是唯一的方法吗?!

4

2 回答 2

4

您可以从http://api.externalip.net/ip/或一些类似的服务中获取它,但我不确定这些网站的可靠性如何,就可用性而言

任何其他方式都会非常复杂,因为一般来说,没有网络设备有 api 来告诉外部 IP,即使有,您也无法判断您面前是否有一个简单的 xDSL 路由器或 Cisco ASA 分配出站流量

于 2012-07-15T12:23:30.433 回答
3

我的建议是发送一个带有记录路由选项的数据包。

如果您知道您的上游网关,您应该能够找到一个允许您设置记录路由的 ping 命令,然后将该数据存储在一个数组或您可以正则表达式的东西中。

我相信您的 WAN IP 应该是记录 0 或记录 1。

你用的是什么网络库?

于 2012-07-15T12:36:29.087 回答