【问题标题】:How do I programatically get the IP address I am NATed behind? (i.e my pulic IP)如何以编程方式获取我被 NAT 的 IP 地址? (是我的公共 IP)
【发布时间】:2012-08-21 08:24:29
【问题描述】:

我想获取我正在被 NAT 的 IP 地址(例如,呈现给外界的 IP 地址,而不是我的本地 IP)。

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

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

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

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

【问题讨论】:

    标签: c# ip nat


    【解决方案1】:

    您的计算机无法在本地访问此信息;您需要从执行此操作的众多网络服务之一中获取它。

    【讨论】:

    • 有任何服务的例子吗?
    【解决方案2】:

    有很多ip服务

    例如这个。只需发出GET 请求并打包一个简单的html:http://checkip.dyndns.org/

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2018-05-28
      • 2020-05-06
      • 2016-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-25
      • 2018-11-06
      • 1970-01-01
      相关资源
      最近更新 更多