【问题标题】:I want to get the ip address through which my machine is connected to internet [duplicate]我想获取我的机器连接到互联网的IP地址[重复]
【发布时间】:2011-11-12 17:24:25
【问题描述】:

可能重复:
c# Get public/external IP address?

我正在用 c# 开发一个应用程序,我需要在其中找到用于连接到 Internet 的公共 IP 地址。我怎样才能得到这个?

【问题讨论】:

    标签: c# windows network-programming


    【解决方案1】:

    您可以使用http://showip.codebrainz.ca/ 获取它。更多信息here

    代码示例:

    using System;
    using System.Net;
    
    class Program
    {
        static void Main()
        {
        // Create web client.
        WebClient client = new WebClient();
    
        // Download string.
        string ip = client.DownloadString("http://showip.codebrainz.ca/");
    
        // Write ip.
        Console.WriteLine(ip);
        }
    }
    

    【讨论】:

    • 这对我没用,我想获取路由器的 IP
    • 这会给你你的公共 ip。
    【解决方案2】:

    【讨论】:

      【解决方案3】:

      其他发帖人已经介绍了获取公共 IP 地址的最简单方法。有一些替代方案,但它们是根据情况而定的(例如需要支持 SNMP 的路由器的 SNMP)。

      如果您想要一种方法,不仅可以让您获取公共 IP 地址,还可以让您测试您如何连接到互联网(例如对称 NAT、全锥、直接连接等),您可以使用STUN 协议(见RFC 5389)。 STUN 还要求您联系外部 STUN 服务器。

      Ivar Lumi 在代码项目中发布了一些working c# code,如果你想要一个例子的话。根据您的要求,这可能是多余的。

      【讨论】:

      • WebClient 客户端 = new WebClient(); client.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR1.0.3705;)");字符串 baseurl = "checkip.dyndns.org";流数据 = client.OpenRead(baseurl); StreamReader reader = new StreamReader(data);字符串 s = reader.ReadToEnd();数据。关闭(); reader.Close(); s = s.Replace(" 当前IP检查", "").Replace("", " ").ToString(); MessageBox.Show(s);
      • 基本上是其他发帖人写的——你应该对他们的两个答案都投赞成票;)
      猜你喜欢
      • 1970-01-01
      • 2012-02-04
      • 2018-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-17
      • 2014-04-22
      • 1970-01-01
      相关资源
      最近更新 更多