本文主要和大家分享php使用IP匹配城市資訊的方法,希望能幫助大家。
1、首先需要取得使用者的真實ip
function ip(){ if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')){ $ip = getenv('HTTP_CLIENT_IP'); }elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')){ $ip = getenv('HTTP_X_FORWARDED_FOR'); }elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')){ $ip = getenv('REMOTE_ADDR'); }elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')){ $ip = $_SERVER['REMOTE_ADDR']; } return preg_match("/[\d\.]{7,15}/", $ip, $matches) ? $matches[0] : 'unknown'; }
2、使用第三方介面來匹配城市
:
匹配的城市資訊需要儲存到資料庫,方便後期使用
第三方提供的API接口,目前網易和新浪的較穩定易用
#1)新浪IP位址查詢API介面
此處顯示返回json格式資料
介面:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=IP位址
範例程式碼:片段
$ip = ip();$url = 'http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip='.$ip;$res = file_get_contents($url);echo $res;die;
結果如圖:
2)網易有道IP位址API介面
介面:http://www.youdao.com/smartresult-xml/search.s?type=ip&q=IP位址
結果如圖:
3)淘寶IP位址庫API介面
介面:http://ip.taobao.com/service/getIpInfo.php?ip=[ip位址字串]
範例程式碼:
$ip = ip();$url = 'http://ip.taobao.com/service/getIpInfo.php?ip='.$ip;$res = file_get_contents($url);echo $res;die;
結果如圖:
3、其他IP位址查詢介面及呼叫方法
設計蜂巢IP位址查詢介面:http: //www.hujuntao.com/api/ip/ip.php
騰訊IP位址查詢介面:http://fw.qq.com/ipaddress
新浪IP位址查詢介面:http://int. dpool.sina.com.cn/iplookup/iplookup.php?format=js
搜狐IP位址查詢介面:http://pv.sohu.com/cityjson
GoogleIP位址查詢介面:http:// j.maxmind.com/app/geoip.js
有道IP位址查詢介面:http://www.youdao.com/smartresult-xml/search.s
1616 IP位址查詢介面:http:/ /w.1616.net/chaxun/iptolocal.php
126 http://ip.ws.126.net/ipquery
hao123 http://app.hao123.com/ipquery/getcity.php?rtype =2
淘寶http://ip.taobao.com/service/getIpInfo.php?ip=117.89.35.58
太平洋電腦網http://whois.pconline.com.cn/
相關推薦:
以上是php使用IP來配對城市資訊的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!