加入收藏 | 设为首页 | 会员中心 | 我要投稿 武汉站长网 (https://www.027zz.cn/)- 云连接、智能边缘云、数据快递、云手机、云日志!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

C# 根据ip获取城市等有关信息

发布时间:2023-06-13 15:00:17 所属栏目:语言 来源:转载
导读:   代码如下:



  /// <summary>



  /// 得到真实IP以及所在地详细信息(Porschev)



  /// </summary>



  /// <returns></returns>



  public string
  代码如下:
 
  /// <summary>
 
  /// 得到真实IP以及所在地详细信息(Porschev)
 
  /// </summary>
 
  /// <returns></returns>
 
  public string GetIpDetails()
 
  {
 
  //设置获取IP地址和国家源码的网址
 
  string url = "http://www.ip138.com/ips8.asp";
 
  string regStr = "(?<=<td//s*align=///"center///">)[^<]*?(?=<br/><br/></td>)";
 
  //IP正则
 
  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;
 
  //国家
 
  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
 
  ip = ma.Value;
 
  int index = html.LastIndexOf(":") + 1;
 
  //得到国家
 
  country = html.Substring(index);
 
  adr = GetAdrByIp(ip);
 
  return "IP:" + ip + " 国家:" + country + " 省市:" + adr;
 
  }
 
  /// <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];
 
  }
 
  代码如下:
 
  /// <summary>
 
  /// 获取HTML源码信息(Porschev)
 
  /// </summary>
 
  /// <param name="url">获取地址</param>
 
  /// <returns>HTML源码</returns>
 
  public string GetHtml(string url)
 
  {
 
  string str = "";
 
  try
 
  {
 
  Uri uri = new Uri(url);
 
  WebRequest wr = WebRequest.Create(uri);
 
  Stream s = wr.GetResponse().GetResponseStream();
 
  StreamReader sr = new StreamReader(s, Encoding.Default);
 
  str = sr.ReadToEnd();
 
  }
 
  catch (Exception e)
 
  {
 
  }
 
  return str;
 
  }
 

(编辑:武汉站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章