首頁 >後端開發 >PHP問題 >php如何禁止一個地區ip

php如何禁止一個地區ip

藏色散人
藏色散人原創
2020-08-15 11:06:393259瀏覽

php禁止一個地區的實現方法:先用一個變數保存訪客的IP位址;然後從外界取得IP位址的詳細資訊;接著判斷是否在拒絕存取的省份範圍內;最後做出對應的響應即可。

php如何禁止一個地區ip

推薦:《PHP影片教學

PHP 禁止某個地區的IP

之前部落格有禁止過江蘇省全省的IP 訪問

在後端, 其實使用PHP 去判斷來訪者的IP 來源, 並且做出相應的處理

#實戰會用到PHP 的一些常用語法:

條件判斷

#循環

##數組

超全域變數

除此之外, 還會用到一些系統自帶的函數

接下來講述一下具體思路:

1. 用一個變數保存訪客的IP 位址

2. 從外界取得IP 位址的詳細資訊

3. 判斷是否在拒絕存取的省份範圍內

4. 做出對應的回應

首先是保存訪客的IP, 可以使用超全域變數$_SERVER 取得訪客的IP 位址

$ip = $_SERVER['REMOTE_ADDR'];

以陣列儲存禁止造訪的省份

$verification = array("xx省", "xx省", ...);

使用淘寶IP 庫, 將淘寶IP 庫(省準確度超過99.8%, 市準確度超過96.8%)的頁面中所有的資訊保存在一個字串中

$result = file_get_contents("http://ip.taobao.com/service/getIpInfo.php?ip=".$ip);

其中, file_get_contents() 函數將一個檔案中的所有字串保存在一個字串中

在網頁中, PHP 顯示的是最終的程式碼回傳值, 而不是顯示PHP 程式碼, 這與前端有所不同

保存在字串中的很難直接拿來比較, 所以要對字串進行處理, 最好變成一個變數

$ipInformation = json_decode($result, true);

json_decode() 函數將一個JSON 形式的字串轉換為PHP 變數, 這裡是轉換為一個二維關聯陣列

$address['data']['region'] 回傳的是IP 的中文省份

最後用迴圈和條件判斷處理拒絕存取

最後的程式碼:

其中, TODO 中就是你對於在範圍內的IP 如何處理, 例如可以直接die(); 來禁止頁面顯示

以上是php如何禁止一個地區ip的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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