首頁 >後端開發 >php教程 >利用PHP取得網站訪客的所在地位置

利用PHP取得網站訪客的所在地位置

高洛峰
高洛峰原創
2017-01-21 13:09:431478瀏覽

前言

大家應該都有所體會,如果是做大型項目的話,網站獲取用戶的本地信息就很關鍵了,比如58分類信息網,在用戶訪問的時候會自己判斷用戶所在地的信息,然後可以跳到對應的分站上面,這樣給用戶的體驗很好,而不是全國各地的用戶全部都來訪問北京站或上海站。

利用PHP獲取訪客所在地位置在大型站點中的應用很廣,當然,除了這個應用之外,還可以舉一反三出許多好玩的東西,今天就在做一個小項目的時候,用到了,在站點不同地區顯示不同內容的小功能,其實跟上面的實例差不多。

實現分析

製作這樣的一個小功能,當然首先就要考慮使用第三方的IP接口,目前,大一點的IP接口有淘寶,新浪,網易,QQ等,最終選擇了新浪IP歸屬地的API,使用上面也很簡單,利用獲取到的IP地址,使用新浪接口,返回一個狀態碼,然後根據狀態碼獲取用戶所在地的位置,然後再進行各個地區顯示不同內容的判斷。

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位址,直接取得訪客的位址改為 $ip = $_SERVER["REMOTE_ADDR"]; 就可以了

下面再貼一段根據地區顯示不同內容的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";
}
?>

這段代碼沒什麼整理與優化,在輸出的輸出的時候,我在這裡輸出了JS,這裡可以更改為任何內容,甚至是跳轉網址,另外,如果想要在靜態頁面中使用的話,也很簡單,只要JS包含就可以了,代碼如下:

<script type="text/javascript" src="ip.php?action=test"></script>

action 是傳遞的參數,如果沒用的話,可以刪除掉。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或工作能帶來一定的幫助,如果有疑問大家可以留言交流。

更多利用PHP獲取網站訪客的所在地位置相關文章請關注PHP中文網!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn