C#根据IP地址查询所属地区(调用免费的IP查询接口)
ip-api.com接口(解析 json需要引入Newtonsoft.Json.dll ):
/// <summary> /// 根据IP 获取物理地址 /// </summary> /// <param name="ip">Ip地址</param> /// <returns></returns> public static string GetIpAddress(string ip){string url = "http://ip-api.com/json/"+ip+"?lang=zh-CN";string result = "";WebRequest wrt = null;WebResponse wrp = null;try{wrt = WebRequest.Create(url);wrt.Credentials = CredentialCache.DefaultCredentials;wrp = wrt.GetResponse();StreamReader sr = new StreamReader(wrp.GetResponseStream(), Encoding.UTF8);//获取到的是Json数据string html = sr.ReadToEnd();//Newtonsoft.Json读取数据JObject obj = JsonConvert.DeserializeObject<JObject>(html);string city = obj["city"].ToString();string province = obj["regionName"].ToString();result = city.Equals(province) ? city : (province + city);}catch (Exception){}finally{if (wrp != null)wrp.Close();if (wrt != null)wrt.Abort();}return result;}
126.net接口:
/// <summary> /// 根据IP 获取物理地址 /// </summary> /// <param name="ip">Ip地址</param> /// <returns></returns> public static string GetstringIpAddress(string ip){string url = "http://ip.ws.126.net/ipquery?ip="+ip;string result="";WebRequest wrt = null;WebResponse wrp = null;try{wrt = WebRequest.Create(url);wrt.Credentials = CredentialCache.DefaultCredentials;wrp = wrt.GetResponse();StreamReader sr = new StreamReader(wrp.GetResponseStream(), Encoding.Default);//获取到的数据格式:var lo="江苏省", lc="镇江市"; var localAddress={city:"镇江市", province:"江苏省"}string html = sr.ReadToEnd();string pattern = "{city:\"(?<key1>.*?)\", province:\"(?<key2>.*?)\"}";Regex regex = new Regex(pattern, RegexOptions.None);Match match = regex.Match(html);string city=match.Groups["key1"].Value;string province=match.Groups["key2"].Value;result = city.Equals(province) ? city : (province + city);}catch (Exception){}finally{if (wrp != null)wrp.Close();if (wrt != null)wrt.Abort();}return result;}
C#根据IP地址查询所属地区(调用免费的IP查询接口)相关推荐
- golang中获取公网ip、查看内网ip、检测ip类型、校验ip区间、ip地址string和int转换、根据ip判断地区国家运营商等
作者: 一蓑烟雨1989 所属专栏: Go从不放弃到实战 本文链接:https://blog.csdn.net/wangshubo1989/article/details/78066344 生命不止, ...
- ip地址怎么精确定位 手机如何改ip地址位置
ip地址精确定位 方法一 IP地址查询服务:使用在线的IP地址查询服务,如ip138.com.ip2location.com等,输入要查询的IP地址,系统将返回精确到地理位置的相关信息,包括国家.地区 ...
- PC和服务器的IP地址信息DNS,PC和服务器的IP地址信息DNS
PC和服务器的IP地址信息DNS 内容精选 换一换 网站的访问与云服务器的网络配置.端口通信.防火墙配置.安全组配置等多个环节相关联.任意一个环节出现问题,都会导致网站无法访问.本节操作介绍网站无法访 ...
- ip地址合法性检查 php,php检查验证IP为有效IP地址函数
在php5.2之前如果我们要验证IP地址是否有效我们需要使用正则来验证这样只是IP地址是不是合法的,如果要有效我们需要调用ping来操作,但php5.2.0之后,有专门的函数来做这个判断了,下面我来总 ...
- python判断ip地址是否合法_Python课堂:判定IP地址合法性的三种方法
IP IP合法性校验是开发中非常常用的,看起来很简单的判断,作用确很大,写起来比较容易出错,今天我们来总结一下,看一下3种常用的IP地址合法性校验的方法. IPv4的ip地址格式:(1~255).(0 ...
- linux修改ip地址方法如何保存_修改电脑IP地址方法
相信大家的日常的生活中都会接触电脑,电脑给我们的生活带来了许多的便利,同时也开阔了我们的视野,有时我们会需要更改IP地址,比如电脑受限制或者连接网络不成功的情况下,可能就需要更改一下我们的电脑IP地址 ...
- 两台服务器虚拟成一个ip地址,两台服务器如何用一个ip地址
两台服务器如何用一个ip地址 内容精选 换一换 华为云帮助中心,为用户提供产品简介.价格说明.购买指南.用户指南.API参考.最佳实践.常见问题.视频帮助等技术文档,帮助您快速上手使用华为云服务. 检 ...
- 电子邮件服务器的ip地址_可用的不同类型的IP地址
有几种不同类型的IP地址可用.尽管无论哪种类型,IP地址的结构都是相同的,但它们的作用不同.例如,您有公用IP地址,专用IP地址,静态IP地址和动态IP地址. 动态和静态之间的区别是动态IP地址会更改 ...
- IP地址冲突怎么办? 如何解决局域网IP地址冲突?
IP地址冲突怎么办? 如何解决局域网IP地址冲突? 在同一个局域网里如果有两个用户同时使用了相同的IP地址,或者一个用户已经通过DHCP得到了一个IP地址,而此时又有其他用户以手工分配方式设定了与此相 ...
- linux ubuntu 设置ip地址命令行,Ubuntu Linux上的IP地址管理
如今,一切都在互联网上.说"互联网已经成为我们生活的基本必需品"是正确的.互联网是相互连接的网络的网络.要浏览互联网,应该了解网络的基本知识,即如何将本地网络连接到互联网.首先,连 ...
最新文章
- 【Qt】解决在linux上使用Qt的媒体模块(Qt += multimedia)缺少模块multimedia的问题
- 利用opencv进行移动物体检测
- 1.20 Java8新特性:Effectively final
- 分布式项目 cookie共享方案
- .NET的两种部署模式,了解一下
- boost::filesystem 库的简单使用
- 特斯拉宣布总部将从加州硅谷迁到得州
- 进程(Process)和线程(Thread)的区别
- 谷歌浏览器chrome假死、卡死、经常无反应,火狐firefox闪黑格子的解决办法(显卡/驱动兼容问题)...
- java放大镜怎么写,JavaScript简单实现放大镜效果代码
- 基于C++编译的车牌识别系统
- biosrecovery什么意思_BIOS Recovery 简介
- HDLC、PPP、FR原理和配置
- GooglePlay上架流程
- 给 Vuepress 和 ElementUI 添加夜间暗色模式
- 计算机类sci四大水刊,官方证实:「四大水刊」之一的 ONCOTARGET 2018年起将不再被 SCI 收录,你怎么看?...
- CAJ如何在线免费转换成可编辑的Word
- java干两年失业了,干了两年开发后,感觉快要被淘汰
- 解决git pull中 fatal: Not possible to fast-forward, aborting
- vb.net 图形控件_玩转图形:VB.net GlassLabel控件