通过外部接口 根据ip获取城市名
3种接口
淘宝/百度/不知名/ 推荐淘宝接口
ip自个去获取,下附带php 获取ip的示例
function getIP() { static $realip; if (isset($_SERVER)){ if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])){ $realip = $_SERVER["HTTP_X_FORWARDED_FOR"]; } else if (isset($_SERVER["HTTP_CLIENT_IP"])) { $realip = $_SERVER["HTTP_CLIENT_IP"]; } else { $realip = $_SERVER["REMOTE_ADDR"]; } } else { if (getenv("HTTP_X_FORWARDED_FOR")){ $realip = getenv("HTTP_X_FORWARDED_FOR"); } else if (getenv("HTTP_CLIENT_IP")) { $realip = getenv("HTTP_CLIENT_IP"); } else { $realip = getenv("REMOTE_ADDR"); } } return $realip; }
1,淘宝接口
特点:调用简单,返回字符串,好使
体验:这就是我想要的,简单,方便
调用地址:http://ip.taobao.com/service/getIpInfo.php?ip=202.198.16.3 //更改ip即可
返回值:json字符串
截图如下
2,百度接口
特点: json返回,清晰, 需注册获得key,支持经纬度定位
体验: 测试了几个ip,对国内的支持不错,国外的报了service error.不可靠
调用地址:http://api.map.baidu.com/location/ip?ak=F454f8a5efe5e577997931cc01de3974&ip=202.198.16.3&coor=bd09ll //更改ip即可使用 ,具体参数下面有官网地址,自个查询
返回值:json字符串
官网地址:http://developer.baidu.com/map/ip-location-api.htm
截图如下:
3,不知名网点
特点 :基本能对全球ip进行定位获取地址,基于IP 地址库v2.0. ,js调用
体验:不是很好,偏向于前端js的呈现,后台调用需要字符串解析 拼接
url地址:http://whois.pconline.com.cn/ipJson.jsp?callback=testJson&ip= //加上需要查询的ip地址
返回值:需自己解析的字符串
截图如下