PHP實現IP黑白名單過濾

2021-09-01 10:41:28 字數 1092 閱讀 9588

需求來自乙個運維的同事,對乙個php檔案執行進行ip過濾,不方便直接配置伺服器,於是需要直接在php檔案開頭進行ip的過濾。

ip過濾規則,可以有如下形式:

2.某一段ip 如:192.168.0.* 。

運維可以自定義ip黑白名單,由多個ip過濾規則組成,儲存在陣列中。通過編寫**,實現ip黑白名單功能。乙個比較簡單的需求。

首先實現乙個函式,功能是判斷ip是否符合某個ip過濾規則:

function ip_test($ip,$iprule)',$ipruleregexp);

if(preg_match('/^'.$ipruleregexp.'$/',$ip)) return true;

else return false;

}

實現了ip_test這個核心函式後,下面的過程就簡單多了,無非就是簡單的遍歷名單中的每條規則,判斷當前連線的ip是否符合規則,並進行對應的步驟。

白名單,當ip至少滿足一條規則時繼續執行操作

$curr_ip=$_server['remote_addr'];

$white_list=array(...); //白名單規則

$test_success=false;

foreach($white_list as $iprule)

}if(!$test_success) exit('ip not in white list');

黑名單,當ip不滿足所有規則時繼續執行操作

$curr_ip=$_server['remote_addr'];

$black_list=array(...); //黑名單規則

foreach($black_list as $iprule)

}

就這樣,乙個簡單的php實現的ip黑白名單過濾就完成了。這篇部落格主要是給那些主業務不是開發的人員,如:技術支援、運維等。由於太簡單,原本不想寫,後來那個同事感謝我幫忙,對我說這個他在網上找了很久,都沒有找到合適的解決方案,我就想說不定這個還真有人需要呢。

php檔案白名單 php實現ip白名單黑名單功能

這個是乙個檢測ip是否非法的php函式,適應於白名單,黑名單功能開發,主要場景應用於 api 限制,訪問限制等.複製 如下 安全ip檢測,支援ip段檢測 param string ip 要檢測的ip param string array ips 白名單ip或者黑名單ip return boolean...

php檔案白名單 php實現ip白名單黑名單功能

這個是乙個檢測ip是否非法的php函式,適應於白名單,黑名單功能開發,主要場景應用於 api 限制,訪問限制等.安全ip檢測,支援ip段檢測 param string ip 要檢測的ip param string array ips 白名單ip或者黑名單ip return boolean true ...

IP白名單的實現(PHP)

有些專案可能會用到乙個ip位址的白名單黑名單之類的驗證。比如,只有ip位址在白名單中,才可以訪問該系統。那麼此時,白名單的維護,一般是乙個檔案,裡邊是一些ip位址 每行乙個ip 當然也有的可能是用資料庫記錄白名單。當然,即使放在資料庫中記錄 方便管理 也可以在後台根據資料庫生成ip白名單的配置檔案,...