站長資訊網(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ù)器取得客戶端的真實(shí) IP 地址;

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

一般來說,開發(fā)者對于內(nèi)部的服務(wù)器架構(gòu)比較了解,簡單粗暴的用REMOTE_ADDR即可,因?yàn)镽EMOTE_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號
日韩网站在线观看| 午夜精品久久久久成人| 正在播放国产精品每日更新| 日韩一区二区三区免费体验| 成人国产精品2021| 久久精品国产亚洲av品善| 精品无码一区二区三区在线| 一区二区三区国产精品| 国内精品伊人久久久久av一坑| 亚洲精品老司机在线观看| 日韩一级黄色录像| 国产69久久精品成人看小说 | 中文国产成人精品久久不卡| 精品高潮呻吟99av无码视频 | 青春草国产成人精品久久| 亚洲精品无码av片| 亚洲精品久久久久无码AV片软件| 99久久免费国产精品特黄| 久久久国产亚洲精品| 99热亚洲色精品国产88| 国产伦精品一区二区三区女| 精品久久久久久国产潘金莲| 亚洲av午夜精品无码专区| 亚洲精品中文字幕无乱码| 久久久精品人妻一区二区三区蜜桃| 久久久久成人精品| 久久777国产线看观看精品卜| 久久久久亚洲精品成人网小说 | 国产精品一在线观看| 国产精品爽黄69天堂a片| 东京热一精品无码AV| 超碰97久久国产精品牛牛| 国产精品成人va在线播放| 国产精品午夜无码体验区| 国产午夜久久精品| 日韩电影免费在线观看| 日韩高清免费在线观看| 色婷婷精品免费视频| 国产成人精品亚洲精品| 国内精品久久久久久不卡影院| 99re国产精品视频首页|