c#通过ip获取地理信息
2023-06-13 09:15:17 时间
///<summary>
///通过IP得到IP所在地省市(Porschev)
///</summary>
///<paramname="ip"></param>
///<returns></returns>
publicstringGetAdrByIp(stringip)
{
stringurl="http://www.cz88.net/ip/?ip="+ip;
stringregStr="(?<=<span\\s*id=\\\"cz_addr\\\">).*?(?=</span>)";
//得到网页源码
stringhtml=GetHtml(url);
Regexreg=newRegex(regStr,RegexOptions.None);
Matchma=reg.Match(html);
html=ma.Value;
string[]arr=html.Split("");
returnarr[0];
}
///<summary>
///获取HTML源码信息(Porschev)
///</summary>
///<paramname="url">获取地址</param>
///<returns>HTML源码</returns>
publicstringGetHtml(stringurl)
{
stringstr="";
try
{
Uriuri=newUri(url);
WebRequestwr=WebRequest.Create(uri);
Streams=wr.GetResponse().GetResponseStream();
StreamReadersr=newStreamReader(s,Encoding.Default);
str=sr.ReadToEnd();
}
catch(Exceptione)
{
}
returnstr;
}
///<summary>
///得到真实IP以及所在地详细信息(Porschev)
///</summary>
///<returns></returns>
publicstringGetIpDetails()
{
//设置获取IP地址和国家源码的网址
stringurl="http://www.ip138.com/ips8.asp";
stringregStr="(?<=<td\\s*align=\\\"center\\\">)[^<]*?(?=<br/><br/></td>)";
//IP正则
stringipRegStr="((2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(2[0-4]\\d|25[0-5]|[01]?\\d\\d?)";
//IP地址
stringip=string.Empty;
//国家
stringcountry=string.Empty;
//省市
stringadr=string.Empty;
//得到网页源码
stringhtml=GetHtml(url);
Regexreg=newRegex(regStr,RegexOptions.None);
Matchma=reg.Match(html);html=ma.Value;
RegexipReg=newRegex(ipRegStr,RegexOptions.None);
ma=ipReg.Match(html);
//得到IP
ip=ma.Value;
intindex=html.LastIndexOf(":")+1;
//得到国家
country=html.Substring(index);
adr=GetAdrByIp(ip);
return"IP:"+ip+"国家:"+country+"省市:"+adr;
}
相关文章
- [RK3399/RK3328][Android10.0]Ethernet:以太网设置静态ip,重启后无法获取IP的问题「建议收藏」
- 【愚公系列】2023年01月 .NET/C#知识点-List对象去重的方法总结
- Linux查看IP流量:简单几步获取网络数据(linux查看ip流量)
- Linux下IP配置指南(linux配ip)
- Linux 自动获取IP功能的实现(linux自动获取ip)
- 解决Linux系统无法获取IP的方法(linux无法获取ip)
- 利用IP连接MySQL数据库(通过ip访问mysql)
- Linux 如何伪造 IP?(linux伪造ip)
- 如何在Linux环境下获取主机IP:简单易学的步骤(linux获取主机ip)
- 快速获取Linux IP:简单几步搞定(如何获取linux的ip)
- Linux网络设置:固定IP,安全连接(linux固定ip)
- Linux查看公网IP:实现迅速简便(linux查看公网ip)
- C如何关闭MySQL数据库的链接(c# 关闭mysql链接)
- 深入浅出C连接MySQL进行SDR(c# mysql sdr)
- 给Redis绑定固定IP实现就近访问更高效率(给redis绑定固定ip)
- 使用Oracle Oracle IP解析获取完美互联网体验(ip解析 oracle)
- MySQL获取不到IP,如何解决(mysql不能获取ip)
- 连接用Redis集群连接多个IP(redis集群几个ip)
- Redis登录IP受限安全有保障(redis限制登录ip)
- Redis连接异常IP无法连接(redis连接不上ip)
- 使用C#调用系统API实现内存注入的代码
- php中禁止单个IP与ip段访问的代码小结
- C#基础之数据类型转换
- C#无边框窗体边框阴影效果的简单实现
- c#调用arcgis地图rest服务示例详解(arcgis地图输出)
- C#之WinForm跨线程访问控件实例
- C#使用listView增删操作实例
- 基于C#实现Windows服务状态启动和停止服务的方法