此API现在已经被关闭,不能再正常使用。

在文末加入了普通IP定位API的使用方法

==============================================================

API首页:http://lbsyun.baidu.com/index.php?title=webapi/high-acc-ip

1、申请百度账号,创建应用,获取密钥(AK)

http://lbsyun.baidu.com/apiconsole/key

启用服务:,可以根据自己需求来钩选,这里先全选了。

请求校验方式:IP白名单校验/SN检验,这里选择IP白名单校验。即在下面填上你访问机器的IP地址。如(114.114.114.114)。

单击提交,获得AK

2、获取方式:

服务地址:

 http://api.map.baidu.com/highacciploc/v1
 https://api.map.baidu.com/highacciploc/v1

参数:
qcip 待定位IP 可选 如果为空则针对定位服务的IP进行定位
ak 开发者密钥,即前面申请的东西

extensions  返回结果扩展设定  可选,
0(默认):只返回基础定位结果

1:返回基础定位结果+地址信息

2:返回基础定位结果+周边POI信息

3:返回基础定位结果+地址信息+POI信息
 这里我们用1

coord  返回坐标类型  可选,
bd09(默认):百度墨卡托坐标

bd09ll:百度经纬度坐标

gcj02:国测局经纬度坐标

完整调用:

在浏览器地址栏输入以下网址

https://api.map.baidu.com/highacciploc/v1?qcip=220.181.38.113&ak=你申请的AK&extensions=1&coord=bd09ll

获取结果如下:

返回值说明:

这里默认用的是返回json格式的数据。

字段 说明
content location lat 纬度坐标 基础定位结果extensions=任何值都返回
lng 经度坐标
locid 定位结果唯一ID,用于问题排查
radius 定位结果半径
confidence 定位结果可信度
address_component country 国家 地址信息extensions=1、3返回
province 省份
city 城市
district 区县
street 街道
street_number 门牌号
admin_area_code 行政区划代码(身份证前6位)
formatted_address 结构化地址信息
business 商圈信息
pois(1000m以内的最多10条poi) name 名称 周边POI信息extensions=2、3返回
uid POI唯一标识ID
address 地址
tag 分类
location lat 纬度
lng 经度
location_description 位置描述信息
result loc_time 定位时间 结果信息extensions=任何值都返回
error 定位结果状态码

161:定位成功

167:定位失败

1:服务器内部错误

101:AK参数不存在

200:应用不存在,AK有误请检查重试

201:应用被用户自己禁止

202:应用被管理员删除

203:应用类型错误

210:应用IP校验失败

211:应用SN校验失败

220:应用Refer检验失败

240:应用服务被禁用

251:用户被自己删除

252:用户被管理员删除

260:服务不存在

261:服务被禁用

301:永久配额超限,禁止访问

302:当天配额超限,禁止访问

401:当前并发超限,限制访问

402:当前并发和总并发超限

创建对应的类:

    [Serializable]  //添加序列化特性
public class DetailAddress
{
public DetailContent Content { get; set; }
public DetailResult Result { get; set; }
} [Serializable]
public class DetailContent
{
public DetialLocation Location { get; set; }
public string Locid { get; set; }
public string Radius { get; set; }
public string Confidence { get; set; }
public DetailAddress_component Component{get;set;}
public string Formatted_address{get;set;}
} [Serializable]
public class DetialLocation
{
public string Lat { get; set; }
public string Lng { get; set; } } [Serializable]
public class DetailAddress_component
{
public string Country { get; set; }
public string Province { get; set; }
public string City { get; set; }
public string Distinct { get; set; }
public string Street { get; set; }
public string Street_Number { get; set; }
public string Admin_Area_Code { get; set; } } [Serializable]
public class DetailResult
{
public string Error { get; set; }
public string Loc_time { get; set; }
}

获取数据:

        public static DetailAddress GetDetailAddressByBaiduAPI(string IPAddress)
{
System.Net.HttpWebRequest request;
System.Net.HttpWebResponse response;
string url = string.Format("https://api.map.baidu.com/highacciploc/v1?qcip={0}&qterm=pc&extensions=1&ak=你的AK&coord=bd09ll", IPAddress);
try
{
request = HttpWebRequest.Create(url) as System.Net.HttpWebRequest;
response = request.GetResponse() as System.Net.HttpWebResponse;
using(System.IO.Stream stream = response.GetResponseStream())
{
using(System.IO.StreamReader sr = new System.IO.StreamReader(stream, System.Text.Encoding.UTF8))
{
string Data = sr.ReadToEnd();
System.Web.Script.Serialization.JavaScriptSerializer serializer = new JavaScriptSerializer();
DetailAddress detail = serializer.Deserialize<DetailAddress>(Data);
return detail;
}
}
}
catch (Exception)
{
return null;
}
}

查看结果:

            //使用
DetailAddress detail = GetDetailAddressByBaiduAPI("114.114.114.114");
//查看街道
System.Console.WriteLine(detail.Content.Location.Street);

==============================================================

普通IP定位API的使用方法

API首页:http://lbsyun.baidu.com/index.php?title=webapi/ip-api

使用方法跟前面一样,也是先申请密钥AK,然后拼写发送HTTP/HTTPS请求的URL

接口参数:

ip  指定IP地址,如果不指定,则获取当前IP地址的位置信息
ak 开发者密钥
sn 可选,若用户所用AK的校验方式为SN校验时该参数必须
coor 输出的坐标格式(WGS84:为一种大地坐标系,也是目前广泛使用的GPS全球卫星定位系统使用的坐标系;GCJ02:表示经过国测局加密的坐标;BD09:为百度坐标系,其中bd09ll表示百度经纬度坐标,bd09mc表示百度墨卡托米制坐标;)
请求网址:
http://api.map.baidu.com/location/ip
https://api.map.baidu.com/location/ip
使用方式:

http://api.map.baidu.com/location/ip?ak=请输入您的AK&coor=bd09ll

或

https://api.map.baidu.com/location/ip?ak=请输入您的AK&coor=bd09ll

其实WebAPI的调用方式都一样, 一般返回的都 是JSON或JSONP格式的数据,C# 都 可以调用,只要创建对应的序列化的类就可以了。

对于获取到的JSON数据,如果觉得比较乱,可以在线解析一下,创建类的时候就会方便很多了。

下图是调用API是获取到的结果


然后我们在线解析 一下,解析的网址为

http://www.json.cn/

解析后的结果如下

然后我们创建对应的类,就可以在C# 中进行调用了。

如果获取地址不成功,可以对照上面的错误码查找原因。

C#调用百度高精度IP定位API通过IP获取地址的更多相关文章

  1. c#百度IP定位API使用方法

    c#百度IP定位API使用方法 1.先建立一个收集信息的实体类 IPModel.cs: using System; using System.Collections.Generic; using Sy ...

  2. C# 调用百度地图Web服务API

    最近公司项目中需要根据两个地点的交通路径和距离做一些数据推荐,为了程序的稳定和用户体验所以想从百度地图 API 采集数据保存到数据库中,经过一翻研究之后选定了百度地图 Web 服务 API 中的 Di ...

  3. Node.js调用百度地图Web服务API的Geocoding接口进行点位反地理信息编码

    (从我的新浪博客上搬来的,做了一些修改.) 最近迷上了node.js以及JavaScript.现在接到一个活,要解析一个出租车点位数据的地理信息.于是就想到使用Node.js调用百度地图API进行解析 ...

  4. C# 调用百度地图 Web 服务 API

    最近公司项目中需要根据两个地点的交通路径和距离做一些数据推荐,为了程序的稳定和用户体验所以想从百度地图 API 采集数据保存到数据库中,经过一翻研究之后选定了百度地图 Web 服务 API 中的 Di ...

  5. js调用百度地图接口绘制任意多边形并获取每个点的经纬度等

    来自:https://blog.csdn.net/u013239236/article/details/52213977 侵删 <!DOCTYPE html> <html> & ...

  6. C#百度api 根据经纬度获取地址

    public string GetAddress(string lat, string lng) { try { string res = ""; string url = @&q ...

  7. 百度地图ip定位,不算bug的bug

    做为一个入行不足两年的菜鸟,能在博客园写下第一篇博客,是需要多大的勇气啊.主要还是怕大神们喷啊.其次自己文笔实在太差了. 哈哈~还请各位大神,口下留情啊. 首先说下我的需求:一个需要城市分站的手机站. ...

  8. 使用百度定位Api获取当前用户登录地址

    最近在做一个商城项目,客户想把网站做成类似于美团的效果,切换地区时,内容也跟随变化.这就要首先解决根据用户id获得地址的问题,最终决定使用百度定位(不适用于搭建反向代理的项目) String url ...

  9. [置顶] Xamarin android如何调用百度地图入门示例(一)

    在Xamarin android如何调用百度地图呢? 首先我们要区分清楚,百度地图这是一个广泛的概念,很多刚刚接触这个名词"百度地图api",的确是泛泛而谈,我们来看一下百度地图的 ...

随机推荐

  1. jQuery选择什么版本 1.x? 2.x? 3.x?

    类似标题:jQuery选择什么版本?jquery一般用什么版本?jquery ie8兼容版本.jquery什么版本稳定? 目前jQuery有三个大版本:1.x:兼容ie678,使用最为广泛的,官方只做 ...

  2. CentOS7安装NodeJS6.9

    1.下载 wget https://nodejs.org/dist/v6.9.2/node-v6.9.2-linux-x64.tar.xz 2.解压 tar -xJf node-v6.9.2-linu ...

  3. SalesForce 记录级别安全性

    对象级安全性 简档 对象级安全性提供了控制 Salesforce.com 中数据的最简单方式.使用对象级安全性 您可以防止用户查看.创 建.编辑或删除特殊类型对象的任何实例 如潜在客户或业务机会.对象 ...

  4. iOS比较常用的第三方及实例(不断更新中)

    把平时看到或项目用到的一些插件进行整理,文章后面分享一些不错的实例,若你有其它的插件欢迎分享,不断的进行更新: 一:第三方插件 1:基于响应式编程思想的oc 地址:https://github.com ...

  5. iOS 性能调试

    性能调优的方式: 1.通过专门的性能调优工具 2.通过代码优化 1. 性能调优工具: 下面针对iOS的性能调优工具进行一个介绍: 1.1 静态分析工具–Analyze 相信iOS开发者在App进行Bu ...

  6. js生成和下载二维码

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...

  7. 学习 git基础命令

    缘起 年后到了新公司,由于个人意愿到了一个海外的项目组,除了自己从Java技术栈转了C#技术栈外,很多技术都是第一次使用,学习压力不小啊. 自己也就先从常用的技术开始学起,比如C#,AngularJS ...

  8. linux的七大运行级别及级别修改

    运行级别     级别说明 0           所有进程将被终止,机器将有序的停止,关机时系统处于这个运行级别 1           单用户模式,用于系统维护,只有少数进程运行,同时所有服务也不 ...

  9. String构造器中originalValue.length>size 发生的情况

    最近在看Jdk6中String的源码的时候发现String的有个这样的构造方法,源代码内容如下: public String(String original) { int size = origina ...

  10. 基于英特尔® 至强 E5 系列处理器的单节点 Caffe 评分和训练

    原文链接 在互联网搜索引擎和医疗成像等诸多领域,深度神经网络 (DNN) 应用的重要性正在不断提升. Pradeep Dubey 在其博文中概述了英特尔® 架构机器学习愿景. 英特尔正在实现 Prad ...