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')) {