欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

得到真实外网IP、IP所在国家、省份、地区(小偷程序)

程序员文章站 2024-03-07 17:51:03
这种方式效率不算高,如果用在web中,如果用得少可以用这种方式,如果常用,还是建议用ip库 复制代码 代码如下: #region##得到真实ip以及所在地详细信息 ///&...
这种方式效率不算高,如果用在web中,如果用得少可以用这种方式,如果常用,还是建议用ip库
复制代码 代码如下:

#region##得到真实ip以及所在地详细信息
///<summary>
/// 得到真实ip以及所在地详细信息(porschev)
///</summary>
///<returns></returns>
public string getipdetails()
{
string url = "http://www.ip138.com/ips8.asp"; //设置获取ip地址和国家源码的网址
string regstr = "(?<=<td\\s*align=\\\"center\\\">)[^<]*?(?=<br/><br/></td>)";
string ipregstr = "((2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(2[0-4]\\d|25[0-5]|[01]?\\d\\d?)"; //ip正则
string ip = string.empty; //ip地址
string country = string.empty; //国家
string adr = string.empty; //省市
string html = gethtml(url); //得到网页源码
regex reg = new regex(regstr, regexoptions.none);
match ma = reg.match(html); html = ma.value;
regex ipreg = new regex(ipregstr, regexoptions.none);
ma = ipreg.match(html);
ip = ma.value; //得到ip
int index = html.lastindexof(":") + 1;
country = html.substring(index); //得到国家
adr = getadrbyip(ip);
return "ip:" + ip + " 国家:" + country + " 省市:" + adr;
}
#endregion

#region##通过ip得到ip所在地省市
///<summary>
/// 通过ip得到ip所在地省市(porschev)
///</summary>
///<param name="ip"></param>
///<returns></returns>
public string getadrbyip(string ip)
{
string url = "http://www.cz88.net/ip/?ip=" + ip;
string regstr = "(?<=<span\\s*id=\\\"cz_addr\\\">).*?(?=</span>)";
string html = gethtml(url); //得到网页源码
regex reg = new regex(regstr, regexoptions.none);
match ma = reg.match(html);
html = ma.value;
string[] arr = html.split('');
return arr[0];
}
#endregion

#region##获取html源码信息
///<summary>
/// 获取html源码信息(porschev)
///</summary>
///<param name="url">获取地址</param>
///<returns>html源码</returns>
public string gethtml(string url)
{
uri uri = new uri(url);
webrequest wr = webrequest.create(uri);
stream s = wr.getresponse().getresponsestream();
streamreader sr = new streamreader(s, encoding.default);
return sr.readtoend();
}
#endregion