假设我目前的 IP 是:123.123.123.123
如何以编程方式获取该字符串?
注意:我不想获得这个 IP: 192.168.0.10
,我想要其他人可以使用该 IP 通过 HTTP 或其他任何方式连接到我的计算机。
注意:我不想打开诸如 ip4.me 之类的网页来获取地址,我只想用 C++ 来获取它。
我试图用谷歌搜索,但每个建议都是“加载一个页面并阅读它告诉你的 IP”。这真的是唯一的方法吗?!
假设我目前的 IP 是:123.123.123.123
如何以编程方式获取该字符串?
注意:我不想获得这个 IP: 192.168.0.10
,我想要其他人可以使用该 IP 通过 HTTP 或其他任何方式连接到我的计算机。
注意:我不想打开诸如 ip4.me 之类的网页来获取地址,我只想用 C++ 来获取它。
我试图用谷歌搜索,但每个建议都是“加载一个页面并阅读它告诉你的 IP”。这真的是唯一的方法吗?!
您可以从http://api.externalip.net/ip/或一些类似的服务中获取它,但我不确定这些网站的可靠性如何,就可用性而言
任何其他方式都会非常复杂,因为一般来说,没有网络设备有 api 来告诉外部 IP,即使有,您也无法判断您面前是否有一个简单的 xDSL 路由器或 Cisco ASA 分配出站流量
我的建议是发送一个带有记录路由选项的数据包。
如果您知道您的上游网关,您应该能够找到一个允许您设置记录路由的 ping 命令,然后将该数据存储在一个数组或您可以正则表达式的东西中。
我相信您的 WAN IP 应该是记录 0 或记录 1。
你用的是什么网络库?