日期:2014-05-17  浏览次数:21247 次

C#获取外网IP地址
写了个服务组件,如何获取本机电脑的外网ip地址(不是局域网的地址),求代码。

------解决方案--------------------
借助于某个能够返回ip的第三方网站吧,如果自己有服务器自己写一个更好,向它发一个请求,解析返回的内容。单纯从本机去获取估计不行。
------解决方案--------------------
//获取本机的公网IP
privatestaticstring GetIP()
{
    string tempip ="";
    try
    {
           WebRequest wr = WebRequest.Create("http://www.ip138.com/ip2city.asp");
           Stream s = wr.GetResponse().GetResponseStream();
           StreamReader sr =new StreamReader(s, Encoding.Default);
           string all = sr.ReadToEnd(); //读取网站的数据

           int start = all.IndexOf("[") +1;
           int end = all.IndexOf("]", start);
           tempip = all.Substring(start, end - start);
           sr.Close();
           s.Close();
    }
    catch
    {
    }
    return tempip;
}
------解决方案--------------------
public string readip()
{
            HtmlDocument hd = webBrowser1.Document;
            string stra = "";
            for (int i = 0; i < hd.All.Count; i++)
            {
                if (hd.All[i].OuterText != null)
                {
                    Match m = Regex.Match(hd.All[i].OuterText, @"[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}");
                    if (m.Success)
                    {
                        stra = m.ToString();
                        MessageBox.Show(m.ToString());
                        break;
                    }
                }
          &nbs