php中禁止單個(gè)IP與ip段訪問(wèn)的代碼小結(jié)
更新時(shí)間:2012年07月04日 18:33:54 作者:
今天網(wǎng)上有人問(wèn)我php中如何禁用ip訪問(wèn),通過(guò)測(cè)試發(fā)現(xiàn)如下的代碼不錯(cuò),原理也比較簡(jiǎn)單
禁止單個(gè)IP
<?php
//加IP訪問(wèn)限制
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 "腳本之家測(cè)試";
?>
禁止IP段
<?php
//加IP訪問(wèn)限制
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'];
}
$ban_range_low=ip2long("217.0.0.0"); //ip段上
$ban_range_up=ip2long("217.255.255.255");//ip段尾
$ip=ip2long($userip]);
if ($ip>$ban_range_low && $ip<$ban_range_up)
{
print "Banned";
exit();
}
?>
<?php
//加IP訪問(wèn)限制
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 "腳本之家測(cè)試";
?>
禁止IP段
復(fù)制代碼 代碼如下:
<?php
//加IP訪問(wèn)限制
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'];
}
$ban_range_low=ip2long("217.0.0.0"); //ip段上
$ban_range_up=ip2long("217.255.255.255");//ip段尾
$ip=ip2long($userip]);
if ($ip>$ban_range_low && $ip<$ban_range_up)
{
print "Banned";
exit();
}
?>
相關(guān)文章
PHP多維數(shù)組遍歷方法(2種實(shí)現(xiàn)方法)
這篇文章主要介紹了PHP多維數(shù)組遍歷方法,實(shí)例分析了2種多維數(shù)組的遍歷技巧,包括簡(jiǎn)單的foreach遍歷與遞歸操作遍歷實(shí)現(xiàn)方法,需要的朋友可以參考下2015-12-12php.ini中date.timezone設(shè)置詳解
本文給大家分享的是php.ini中date.timezone設(shè)置的方法,非常的簡(jiǎn)單實(shí)用,有需要的小伙伴可以參考下2016-11-11PHP實(shí)現(xiàn)的文件上傳類(lèi)與用法詳解
這篇文章主要介紹了PHP實(shí)現(xiàn)的文件上傳類(lèi)與用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了PHP文件上傳類(lèi)的定義與具體使用方法,需要的朋友可以參考下2017-07-07php統(tǒng)計(jì)數(shù)組不同元素的個(gè)數(shù)的實(shí)例方法
在本篇文章里小編給大家整理的是關(guān)于php統(tǒng)計(jì)數(shù)組不同元素的個(gè)數(shù)的實(shí)例方法以及相關(guān)知識(shí)點(diǎn),有需要的朋友們學(xué)習(xí)下。2019-09-09PHP 和 MySQL 開(kāi)發(fā)的 8 個(gè)技巧
PHP 和 MySQL 開(kāi)發(fā)的 8 個(gè)技巧...2007-01-01