php實現過濾IP黑白名單的方法

來源:互聯網
上載者:User
  1. function ip_test($ip,$iprule){
  2. $ipruleregexp=str_replace('.*','ph',$iprule);
  3. $ipruleregexp=preg_quote($ipruleregexp,'/');
  4. $ipruleregexp=str_replace('ph','\.[0-9]{1,3}',$ipruleregexp);
  5. if(preg_match('/^'.$ipruleregexp.'$/',$ip)) return true;
  6. else return false;
  7. }
複製代碼

實現了ip_test這個核心函數後,下面的過程就簡單多了,無非就是簡單的遍曆名單中的每條規則,判斷當前串連的IP是否符合規則,並進行對應的步驟。白名單,當IP至少滿足一條規則時繼續執行操作:

  1. $curr_ip=$_SERVER['REMOTE_ADDR'];
  2. $white_list=array(...); //白名單規則
  3. $test_success=false;
  4. foreach($white_list as $iprule){
  5. if(ip_test($curr_ip,$iprule)){
  6. $test_success=true;
  7. break;
  8. }
  9. }
  10. if(!$test_success) exit('IP not in white list');
複製代碼

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

  1. $curr_ip=$_SERVER['REMOTE_ADDR'];
  2. $black_list=array(...); //黑名單規則
  3. foreach($black_list as $iprule){
  4. if(ip_test($curr_ip,$iprule)){
  5. exit('IP in black list');
  6. }
  7. }
複製代碼

至此,一個簡單的PHP實現的IP黑白名單過濾就完成了,希望可以為大家帶來協助。您可能感興趣的文章:

PHP安全過濾代碼(360提供 安全係數高)PHP過濾post,get敏感性資料的執行個體代碼php 過濾非法與特殊字元串的方法php 防注入的一段代碼(過濾參數)很好用的php防止sql注入漏洞過濾函數的代碼php防止sql注入正則過濾一例一段php過濾危險html的代碼

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.