一直想给网站添加一个获取客户端IP地址定位用户所在城市的功能,无奈总是认为这个很难,就放弃了,最近查询阿里云主机的IP,就去了淘宝IP数据库查询,结果看到淘宝IP提供查询IP的API接口,喜出望外,得来全不费工夫啊,其实这个功能是非常简单的。代码如下:
1、首先获取客户端的IP地址
function getIPaddress(){ $IPaddress=''; if (isset($_SERVER)){ if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])){ $IPaddress = $_SERVER["HTTP_X_FORWARDED_FOR"]; } else if (isset($_SERVER["HTTP_CLIENT_IP"])) { $IPaddress = $_SERVER["HTTP_CLIENT_IP"]; } else { $IPaddress = $_SERVER["REMOTE_ADDR"]; } } else { if (getenv("HTTP_X_FORWARDED_FOR")){ $IPaddress = getenv("HTTP_X_FORWARDED_FOR"); } else if (getenv("HTTP_CLIENT_IP")) { $IPaddress = getenv("HTTP_CLIENT_IP"); } else { $IPaddress = getenv("REMOTE_ADDR"); } } return $IPaddress; }
2、调用淘宝IP的API接口查询城市信息
public function taobaoIP($clientIP){ $taobaoIP = 'https://ip.taobao.com/service/getIpInfo.php?ip='.$clientIP; $IPinfo = json_decode(file_get_contents($taobaoIP)); $province = $IPinfo->data->region; $city = $IPinfo->data->city; $data = $province.$city; return $data; }
以上调用返回省+市信息。可以调用自己任意想要的IP地址信息。
其实就是这么简单,两步就搞定了。通过以上调用可以实现城市定位、城市自动切换(类似58同城)等功能开发。淘宝IP定位还是挺准确的,这是在线的IP地址库,查询到的都是最新的。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。