繁体   English   中英

如何以编程方式获取后面经过NAT的IP地址? (即我的公共IP)

[英]How do I programatically get the IP address I am NATed behind? (i.e my pulic IP)

我想获取要在后面进行NAT转换的IP地址(例如,提供给外界的地址,而不是我的本地IP)。

类似于您从www.ipchicken.com获得的结果。

我怎么能得到这个? 本地IP信息很容易找到,但是我不知道如何从ISP获取IP。

我需要它的原因是我的网络基础结构使得我在网络外有两个网关。 如果一个失败,它会透明地跳到另一个。 一切都很好,但是没有警报机制可以告诉我我已经失败了。

我相信很难获得此信息。 我想我可以采取的另一种方法是将Web服务放在外部托管的Web服务器上-想法是它返回查询主机的IP。 (但是,我也不知道该怎么做!)我怀疑这可能是最简单的方法。

您的计算机没有本地访问此信息的权限; 您需要从执行此操作的许多网络服务之一中获取它。

有很多IP服务

以这个为例。 只需发出GET请求,然后将简单的html切成小段即可: http ://checkip.dyndns.org/

有关此服务的更多详细信息(政策和规则): http : //dyn.com/support/developers/checkip-tool/

upd如果您需要经常检查IP,最好添加自己的Web服务。 .dyndns.org允许检查IP一次,持续10分钟。

您可以在Web服务上运行一些.net代码:

((IPEndPoint)tcpClient.Client.RemoteEndPoint).Address.ToString();

但是我认为脚本语言(python?)会更合适。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM