首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP :在php代码中阻止ip地址

PHP :在php代码中阻止ip地址
EN

Stack Overflow用户
提问于 2016-12-21 06:07:26
回答 5查看 2.7K关注 0票数 0

我需要些帮助。我想知道是否有任何可能的代码在php中阻止某些ip地址访问我的IP地址和我的pc从访问特定的IP地址。(例如,我使用ip地址192.168.1.2,我希望阻止192.168.1.3中的ip地址,反之亦然)。在php代码中有可能吗?如果可能的话,我不想用.htaccess文件编写,而是用.php文件编写代码。

这里是我的一些PHP代码

代码语言:javascript
复制
<?php   

$address = "192.168.1.7";
$total=0;
$i=1;
$blockIPstatus="no";


while($blockIPstatus=="no") {

$ping = exec("ping $address");
$pingTime = explode(',',trim($ping));
$time = explode("=",trim($pingTime[2]));
$onlytime = implode("m",trim($time));

$number=chop($time[1],"ms");
$total=$total+$number;
$average=$total/$i;

echo ", Total=".$total;
echo ", average=".round($average, 2);   
echo "<br>";

if($average>=500)
        $blockIPstatus="yes";


}

// i need some function to block this ip from here

?>
EN

回答 5

Stack Overflow用户

发布于 2016-12-21 06:17:07

做这件事有很多方法。但是,如果您想用.php来完成它,您可以这样做:

代码语言:javascript
复制
         if (!empty($_SERVER['HTTP_CLIENT_IP'])) 
            {
                $ip = $_SERVER['HTTP_CLIENT_IP'];
            }
            elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) 
            {
                $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
            } 
            else 
            {
                $ip = $_SERVER['REMOTE_ADDR'];
            }

            if($ip =='192.168.1.2')
            {
                echo "Not allowed"; 
                exit;
            }
票数 1
EN

Stack Overflow用户

发布于 2016-12-21 06:08:34

试试这个:

代码语言:javascript
复制
Order Deny,Allow
Deny from 192.168.1.3

解释:

Apache Web Server提供的访问者阻塞设施使我们能够拒绝对特定访问者的访问,或者允许访问特定的访问者。这对于阻止不必要的访问者非常有用,或者只允许网站所有者访问网站的某些部分,例如管理区域。

若要设置访问者限制和阻塞,请按照主要说明和指南创建一个.htaccess文件,其中包括以下文本:

代码语言:javascript
复制
order allow,deny
deny from 255.0.0.0
deny from 123.45.6.
allow from all

上面的行告诉Apache Web Server阻止访问者访问IP地址'255.0.0.0‘和’123.45.6‘。注意,第二个IP地址缺少第四组数字,这意味着任何与firth三位数匹配的IP地址都将被阻塞,例如'123.45.6.10’和'123.45.6.255‘。

参考文献

票数 0
EN

Stack Overflow用户

发布于 2016-12-21 06:11:32

试着像这样。

代码语言:javascript
复制
if($_SERVER['REMOTE_ADDR'] == "192.168.1.3"))
{
    die("This IP is Blocked");
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41256206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档