发表于2016-05-23 22:13:02
IP地址查询是目前互联网上最常用的功能之一了,特别是做多城市的平台,经常需要根据用户的IP来跳转到对应城市!
以前大家打交道比较多的是纯真IP库,或者其它第三方平台API。前者的优势是在于IP资源都在自己服务器,方便。劣势是更新慢,数据不甚准确(特别是需要特定省份或城市时)。后者优势在于更新及时,方便!劣势是依赖于第三方平台。
在本文推荐的就是第二种,百度云开放平台官方API,分为免费版本与收费版本,免费版本IP库一周更新一次,免费申请,免费使用。
推荐理由主要是使用方便,百度大平台,API的稳定也更好。重要的是收费版本价钱也不贵,如果免费版本支持不住大量请求时,只要修改action地址就可以切换到收费版本。
免费版API接口说明与申请在这里:http://apistore.baidu.com/apiworks/servicedetail/114.html
只要传二个参数:apikey与IP即可,注意的是apikey必须放到head中去。
请求地址:ttp://apis.baidu.com/apistore/iplookupservice/iplookup
示例代码:
using (WebClient client = new WebClient()) { client.Headers.Add("apikey", "您的KEY"); string value = client.DownloadString("http://apis.baidu.com/apistore/iplookupservice/iplookup?ip=192.168.1.10"); }
返回结果是:json格式的字符串:
{ "errNum": 0, "errMsg": "success", "retData": { "ip": "117.89.35.58", //IP地址 "country": "中国", //国家 "province": "江苏", //省份 国外的默认值为none "city": "南京", //城市 国外的默认值为none "district": "鼓楼",// 地区 国外的默认值为none "carrier": "中国电信" //运营商 特殊IP显示为未知 } }
付费版API说明(申请及付费)地址:http://apistore.baidu.com/apiworks/servicedetail/2422.html
API接口地址:http://apis.baidu.com/apistore/iplookup/iplookup_paid