background image

php 中禁止单个 IP 与 ip 段访问的代码

今天网上有人问我

php 中如何禁用 ip 访问,通过测试发现如下的代码不错,原理也比较简


禁止单个

IP 

<?php 

//加 IP 访问限制 
if

(

getenv

('HTTP_CLIENT_IP') && 

strcasecmp

(

getenv

('HTTP_CLIENT_IP'), 'unknown')) { 

$userip

 = 

getenv

('HTTP_CLIENT_IP'); 

elseif

(

getenv

('HTTP_X_FORWARDED_FOR') && 

strcasecmp

(

getenv

('HTTP_X_FORWARDED_FOR'), 'unknown')) { 

$userip

 = 

getenv

('HTTP_X_FORWARDED_FOR'); 

elseif

(

getenv

('REMOTE_ADDR') && 

strcasecmp

(

getenv

('REMOTE_ADDR'), 'unknown')) { 

$userip

 = 

getenv

('REMOTE_ADDR'); 

elseif

(isset(

$_SERVER

['REMOTE_ADDR']) && 

$_SERVER

['REMOTE_ADDR'] && 

strcasecmp

(

$_SERVER

['REMOTE_ADDR'], 'unknown')) { 

$userip

 = 

$_SERVER

['REMOTE_ADDR']; 

$banned_ip

 = 

array

 ( 

"127.0.0.1", 
"203.0.0.1", 
"56.12.50.65", 
"192.168.1.88" 
); 

if

 (in_array(

$userip

,

$banned_ip

)) 

die

 ("Your IP is block to connect !"); 

echo

 "一览 php 测试"; 

?> 
禁止

IP 段 

代码如下

:

 
<?php 

//加 IP 访问限制 
if

(

getenv

('HTTP_CLIENT_IP') && 

strcasecmp

(

getenv

('HTTP_CLIENT_IP'), 'unknown')) { 

$userip

 = 

getenv

('HTTP_CLIENT_IP'); 

elseif

(

getenv

('HTTP_X_FORWARDED_FOR') && 

strcasecmp

(

getenv

('HTTP_X_FORWARDED_FOR'), 'unknown')) { 

$userip

 = 

getenv

('HTTP_X_FORWARDED_FOR'); 

elseif

(

getenv

('REMOTE_ADDR') && 

strcasecmp

(

getenv

('REMOTE_ADDR'), 'unknown')) {