一台机器已经上网,无论如何方式,如何通过c#程序设计得知本机的在公网上的ip地址。

解决方案 »

  1.   

    C#如何获取本地IP地址
      

  2.   

    static string GetPage(string url)  
      {  
      HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);  
      try  
      {  
      using (HttpWebResponse res = (HttpWebResponse)req.GetResponse())  
      {  
      using (StreamReader sr = new StreamReader(res.GetResponseStream()))  
      {  
      return sr.ReadToEnd();  
      }  
      }  
      }  
      catch (System.Exception e)  
      {  
      return e.Message;  
      }  
      finally  
      {  
      req.Abort();  
      }  
      }  
      // 通过外部网站得到本机的外部IP  
      static string GetOuterIP()  
      {  
      string patt = @"IP: \[(? <IP>[0-9\.]*)\]";  
      string url = "";  
      return Regex.Match(GetPage(url), patt).Groups["IP"].Value;  
      }    static void Main()  
      {  
      foreach (IPAddress ip in Dns.GetHostEntry(Dns.GetHostName()).AddressList)  
      {  
      Console.WriteLine(ip);  
      }  
      Console.WriteLine();  
      Console.WriteLine(GetOuterIP());  
      }