public static string GetIP()
{
Uri uri = new Uri("http://www.ip138.com/ips8.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("GB18030"));
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;
}
else
{
return "搜查中...";
}
}
请问GetIP()这个方法有写错吗?我调用返回到Lable的时候,是返回搜查中的,请问我的语句是否些错了,因而无法获取外网IP?然后请问怎样解决问题??
{
Uri uri = new Uri("http://www.ip138.com/ips8.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("GB18030"));
string s = rs.ReadToEnd();
rs.Close();
req.Abort();
res.Close();
Match m = Regex.Match(Html, @"(?is)(?<=您的IP地址是)(?:(?!</?\]).)*(?=\])");
if (m.Success)
{
return m.Value.Remove(0, 2);
}
else
{
return "搜查中...";
}
}
正则是否有问题,没匹配到
{
Uri uri = new Uri("http://www.ip138.com/ips8.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("GB18030"));
string s = rs.ReadToEnd();
rs.Close();
req.Abort();
res.Close();
Match m = Regex.Match(s, @"(?is)(?<=您的IP地址是)(?:(?!</?\]).)*(?=\])");
if (m.Success)
{
return m.Value.Remove(0, 2);
}
else
{
return "搜查中...";
}
}