在asp.net中如何获取http://www.ikaka.com/ip/index.asp这个网页中的ip地址?
        public string netIP()
        {
            Uri uri = new Uri("http://www.ikaka.com/ip/index.asp");//查本机网络IP的网页
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(uri);
            req.Method = "POST";
            req.ContentType = "application/x-www-form-urlencoded";
            req.ContentLength = 0;
            req.CookieContainer = new CookieContainer();
            req.GetRequestStream().Write(new byte[0], 0, 0);
            HttpWebResponse res = (HttpWebResponse)(req.GetResponse());
            StreamReader rs = new StreamReader(res.GetResponseStream(), Encoding.GetEncoding("GB2312"));
            string s = rs.ReadToEnd();
            rs.Close();
            req.Abort();
            res.Close();
            Match m = Regex.Match(s, @"IP:\[(?<IP>[0-9\.]*)\]");
            if (m.Success) return m.Groups["IP"].Value;
            string strnetIP = string.Empty;
            return strnetIP;
        }
以上代码为什么不成功?

解决方案 »

  1.   


    string Str="http://www.ikaka.com/ip/index.asp"
    int  LastPosition=Str.LastindexOf('/');
    String NewStr=Str.SubString(0,Str.length-LastPosition);
    LastPosition=NewStr.LastindexOf('/');
    NewStr=NewStr.SubString(LastPosition,NewStr.length-LastPosition);
    MessageBox.Show(NewStr);//你的IP
      

  2.   

    通过LastPosition提取ip,也就是/ip/两边的‘/’的index
      

  3.   

    可能是我说得不太清楚,我并不是说要获取字符串[ http://www.ikaka.com/ip/index.asp ]中[ ip ]这两个
    字符,我是想猎取网页http://www.ikaka.com/ip/index.asp中所显示的IP地址。
      

  4.   

            Match m = Regex.Match(s, @"<span class=\""b\"">[\d.]+</span>");
      

  5.   

    你获取到的是html 而不是你看到的页面内容
    那个ip地址是包在一个<span class="b"></span>里面的
    所以你获取的到数据里面匹配应该是<span class="b">[\d.]+</span>这样的上面的纠正为<span\sclass=\""b\"">[\d.]+<\/span>