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

时间:2012-08-21 08:24:30

标签: c# ip nat

我希望获得我被NAT后面的IP地址(例如,提供给外部世界的IP地址,而不是我的本地IP)。

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

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

我需要它的原因是我的网络基础设施是这样的,我有两个网关出网络。如果一个失败,它会透明地跳到另一个。一切都很好,但没有警报机制告诉我,我已经失败了。

我认为获取此信息非常困难。我想我可以采取的另一种方法是在外部托管的网络服务器上放置一个web服务 - 这个想法是它返回查询主机的IP。 (但是,我也不知道怎么做!)我怀疑这可能是最简单的方法。

2 个答案:

答案 0 :(得分:3)

您的计算机无法在本地访问此信息;你需要从许多网络服务中的一个获得它。

答案 1 :(得分:3)

有很多ip服务

例如,这个。只需发出一个GET请求,然后输入一个简单的html:http://checkip.dyndns.org/

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

<强> UPD 如果您需要经常检查IP,最好添加自己的网络服务。 .dyndns.org允许检查ip一次10分钟。

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

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

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