久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      PHP限制訪問ip白名單的方法詳解

      PHP限制訪問ip白名單的方法詳解

      PHP如何限制訪問ip白名單?

      一 、上代碼

      config.php

          //ip白名單配置         'ipWlist'=>[             'ifFilter'=>true,   //是否開啟白名單功能             'wlist'=>[                 '10.0.0.19',             ],             'warea1'=>'10.8.0.0/16',     //白名單網(wǎng)段1             'warea2'=>'10.12.0.0/16',     //白名單網(wǎng)段1         ],

      commonfunc.php

      private function checkIp(){         $user_IP = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"];         $user_IP = ($user_IP) ? $user_IP : $_SERVER["REMOTE_ADDR"];         $ipC=config('appconf.ipWlist');         if(!$ipC['ifFilter']){             return true;         }         if(in_array($user_IP, $ipC['wlist'])){             return true;         }         if( ! $this->ip_in_network($user_IP, $ipC['warea1'])){             if( ! $this->ip_in_network($user_IP, $ipC['warea2'])){                 return false;             }         }         return true;     }     private function  ip_in_network($ip, $network)     {         $ip = (double) (sprintf("%u", ip2long($ip)));         $s = explode('/', $network);         $network_start = (double) (sprintf("%u", ip2long($s[0])));         $network_len = pow(2, 32 - $s[1]);         $network_end = $network_start + $network_len - 1;         if ($ip >= $network_start && $ip <= $network_end)         {             return true;         }         return false;     }

      二 、說明

      2.1 獲取ip的方式

      ● $_SERVER["HTTP_VIA"] 有代理服務(wù)器的時候,表示代理服務(wù)器IP;

      ● $_SERVER["HTTP_X_FORWARDED_FOR"] 透過代理服務(wù)器取得客戶端的真實 IP 地址;

      ● $_SERVER["REMOTE_ADDR"] 正在瀏覽當(dāng)前頁面用戶的 IP 地址

      一般來說,開發(fā)者對于內(nèi)部的服務(wù)器架構(gòu)比較了解,簡單粗暴的用REMOTE_ADDR即可,因為REMOTE_ADDR不可偽造,更加安全,另外兩個字段就沒那么靠譜.

      2.2 有的童鞋不是用數(shù)組的config而是用define

      可以用json_encode,序列化,eval()等方式來解決,如下

      define("IPFILTER",1);   define('IPWLISTJSON',json_encode(['127.0.0.1',])); // 業(yè)務(wù)中 $wlist = json_decode(IPWLISTJSON,1); define('IPWLIST',"return ['127.0.0.1',];"); // 業(yè)務(wù)中 $wlist=eval(IPWLIST) define('IPWLIST',serialize(['127.0.0.1',])); // 業(yè)務(wù)中 $wlist=unserialize(IPWLIST);

      還可以用string特殊分隔符的explode形式等,這里就不一一舉例了。

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號