为了统计访客数量来源所属地区,主要是省市的数量及其比例。网路上有多种免费的IP地址转换的服务,考虑了准确性,易用性,查询速率以及每日查询量,特推荐百度和腾讯的api以此文来总结说明。
ip地址解析
普通IP定位 API是一个根据IP返回对应大致位置信息的HTTP/HTTPS形式位置服务接口。调用API接口,返回请求参数中指定IP的大致位置信息,包括:经纬度、省、市、区县等地址信息。如果请求参数中的IP为空,则默认返回当前服务请求来源的IP所对应的大致位置信息。
根据网上公开的接口有以下6大厂商
1、腾讯
https://apis.map.qq.com/ws/location/v1/ip={ip}&key={key}
优缺点:需要申请key、速度快、有基本信息。
2、百度
https://api.map.baidu.com/location/ip?ak={ak}&ip={ip}&coor=bd09ll
优缺点:需要申请ak码、实名认证,上传身份照片审核等,但是速度快
3、淘宝
http://ip.taobao.com/service/getIpInfo.php?ip={ip}
优缺点:免费,但经常访问失败qps上限、获取结果比较慢
4、新浪
http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip={ip}
优缺点:多次访问打不开
5、搜狐
http://pv.sohu.com/cityjson?ie=utf-8
优缺点:返回的信息太少,只有城市id和城市信息
6、太平洋
http://whois.pconline.com.cn/?ip={ip}
优缺点:内容太长且数据是html,不方便解析等
测试百度接口
https://api.map.baidu.com/location/ip?ak=%s&ip=%s&coor=bd09ll
返回数据
{
"address": "CN|北京|北京|None|UNICOM|0|0",
"content": {
"address": "北京市",
"address_detail": {
"city": "北京市",
"city_code": 131,
"district": "",
"province": "北京市",
"street": "",
"street_number": ""
},
"point": {
"x": "116.40387397",
"y": "39.91488908"
}
},
"status": 0
}
测试腾讯接口
https://apis.map.qq.com/ws/location/v1/ip?ip=%s&key=%s&output=json
返回数据
{
"status": 0,
"message": "query ok",
"result": {
"ip": "43.250.200.1",
"location": {
"lat": 28.11266,
"lng": 112.9834
},
"ad_info": {
"nation": "中国",
"province": "湖南省",
"city": "",
"district": "",
"adcode": 430000
}
}
}
感兴趣的自己可以去申请key码去体验下这些接口,欢迎补充!