获取外网的IP的方法!
2007-11-13 11:17 w i n s o n 阅读(1093) 评论(0) 编辑 收藏 举报string ip= Request.ServerVariables["HTTP_X_FORWARDED_FOR"] ;
string ip2=Request.ServerVariables["REMOTE_ADDR"] ;
string ip3=Request.UserHostAddress;
string ip2=Request.ServerVariables["REMOTE_ADDR"] ;
string ip3=Request.UserHostAddress;
如果你的服务器放在内网,以上只能获取内网IP,那么有什么方法可以获取外网的IP呢? 其实也很简单,只需使用WebClient里的DownloadData方法去下载某一IP查询网页的内容,然后再对这些内容去正则表达式来匹配,就可获取得当前服务器所在的外网IP了,代码如下:
public IPAddress GetIP()
{
WebClient client = new WebClient();
byte[] bytRecv = client.DownloadData("http://www.123cha.com/"); //下载网页数据
string str = System.Text.Encoding.GetEncoding("gb2312").GetString(bytRecv);
string r = @"(((\d{1,3})|(1\d{2})|(2[0-4]\d)|(25[0-5]))\.){3}((\d{1,3})|(1\d{2})|(2[0-4]\d)|(25[0-5]))";
string ip = System.Text.RegularExpressions.Regex.Match(str, r).ToString(); //提取信息
return IPAddress.Parse(ip);
}
{
WebClient client = new WebClient();
byte[] bytRecv = client.DownloadData("http://www.123cha.com/"); //下载网页数据
string str = System.Text.Encoding.GetEncoding("gb2312").GetString(bytRecv);
string r = @"(((\d{1,3})|(1\d{2})|(2[0-4]\d)|(25[0-5]))\.){3}((\d{1,3})|(1\d{2})|(2[0-4]\d)|(25[0-5]))";
string ip = System.Text.RegularExpressions.Regex.Match(str, r).ToString(); //提取信息
return IPAddress.Parse(ip);
}
调用方法:
System.Net.IPAddress ip = GetIP();
Response.Write(ip.ToString());
Response.Write(ip.ToString());