利用PHP獲取網(wǎng)站訪客的所在地位置
前言
大家應(yīng)該都有所體會,如果是做大型項目的話,網(wǎng)站獲取用戶的本地信息就很關(guān)鍵了,比如58分類信息網(wǎng),在用戶訪問的時候會自己判斷用戶所在地的信息,然后可以跳轉(zhuǎn)到相應(yīng)的分站上面,這樣給用戶的體驗很好,而不是全國各地的用戶全部都來訪問北京站或者上海站。
利用PHP獲取訪客所在地位置在大型站點中的應(yīng)用很廣,當然,除了這個應(yīng)用之外,還可以舉一反三出許多好玩的東西,今天就在做一個小項目的時候,用到了,在站點不同地區(qū)顯示不同內(nèi)容的小功能,其實跟上面的實例差不多。
實現(xiàn)分析
制作這樣的一個小功能,當然首先就要考慮使用第三方的IP接口,目前,大一點的IP接口有淘寶,新浪,網(wǎng)易,QQ等,最終選擇了新浪IP歸屬地的API,使用上面也很簡單,利用獲取到的IP地址,使用新浪接口,返回一個狀態(tài)碼,然后根據(jù)狀態(tài)碼獲取用戶所在地的位置,然后再進行各個地區(qū)顯示不同內(nèi)容的判斷。
PHP的代碼如下:
<?php
$ip = "218.192.3.42";
$json = file_get_contents("http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=".$ip);
$json = json_decode($json, true);
echo "IP地址:".$ip;//xiariboke.com
echo "歸屬地:".$json["country"].$json["province"].$json["city"].$json["district"].$json["isp"];
?>
JS代碼如下:
<script type="text/javascript" src="http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js" charset="utf-8"></script> <script type="text/javascript"> alert(remote_ip_info.country+" "+remote_ip_info.city); </script>
我們主要用到的是PHP的代碼,這里的IP地址是固定的,如果想要獲取訪客的IP地址,直接更改為 $ip = $_SERVER["REMOTE_ADDR"]; 就可以了
下面再貼一段根據(jù)地區(qū)顯示不同內(nèi)容的PHP代碼,如下:
<?php
$ip = $_SERVER["REMOTE_ADDR"];
$json = file_get_contents("http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=".$ip);
$json = json_decode($json, true);
if($json["province"]=="河北"){
echo "document.writeln(\"河北");\n";
}//xiariboke.com
if($json["province"]=="河南"){
echo "document.writeln(\"河南");\n";
}
?>
這段代碼沒怎么整理與優(yōu)化,在輸出的時候,我這里輸出了JS,這里可以更改為任何內(nèi)容,甚至是跳轉(zhuǎn)網(wǎng)址,另外,如果想要在靜態(tài)頁面中使用的話,也很簡單,只要JS包含就可以了,代碼如下:
<script type="text/javascript" src="ip.php?action=test"></script>
action 是傳遞的參數(shù),如果沒有用的話,可以刪除掉。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。
相關(guān)文章
php導入大量數(shù)據(jù)到mysql性能優(yōu)化技巧
這篇文章主要介紹了php導入大量數(shù)據(jù)到mysql性能優(yōu)化技巧,通過針對SQL語句的優(yōu)化實現(xiàn)了mysql性能的提高,非常具有實用價值,需要的朋友可以參考下2014-12-12
PHP7原生MySQL數(shù)據(jù)庫操作實現(xiàn)代碼
php7已經(jīng)沒有mysql這個擴展了,好多貼還是按照以前的方法講,讓我這個新手來回找了好多遍都沒找到mysql,php7用后面兩個鏈接數(shù)據(jù)庫,千萬不要傻傻去找也不要去來回拷貝什么dll之類的2020-07-07
PHP實現(xiàn)域名whois查詢的代碼(數(shù)據(jù)源萬網(wǎng)、新網(wǎng))
對于whois查詢,數(shù)據(jù)來自萬網(wǎng)、新網(wǎng),數(shù)據(jù)也比較權(quán)威,需要的朋友可以參考下。2010-02-02
在mac?OS上進行多個PHP版本之間切換的實現(xiàn)方法
不同項目使用php版本可能不同,需要安裝不同版本php,本文給大家介紹了在macOS上進行多個?PHP?版本之間切換的實現(xiàn)方法,文中有詳細的代碼示例供大家參考,需要的朋友可以參考下2023-10-10

