zl程序教程

您现在的位置是:首页 >  后端

当前栏目

c#通过ip获取地理信息

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;
     }