PHP:在PHP代码中阻止IP地址

时间:2016-12-21 06:07:26

标签: php .htaccess

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

这是我的一些PHP代码

<?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

?>

5 个答案:

答案 0 :(得分:0)

试试这个:

Order Deny,Allow
Deny from 192.168.1.3

说明:

Apache Web Server提供的访问者阻止功能使我们能够拒绝访问特定访问者,或允许访问特定访问者。这对于阻止不受欢迎的访问者或仅允许网站所有者访问网站的某些部分(例如管理区域)非常有用。

要设置访问者限制和阻止,请按照包含以下文本的主要说明和指导创建.htaccess文件:

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&#39;注意,第二个IP地址缺少第四组数字,这意味着任何与第三组数字相匹配的IP地址将被阻止,例如,和/或&#39; 123.45.6.10&#39;和&#39; 123.45.6.255&#39;会被封锁。

Reference

答案 1 :(得分:0)

尝试这样的事情。

if($_SERVER['REMOTE_ADDR'] == "192.168.1.3"))
{
    die("This IP is Blocked");
}

答案 2 :(得分:0)

如果要在PHP代码中阻止IP,可以使用以下代码

 function getip()
 {
      if (getenv("HTTP_CLIENT_IP") &&      strcasecmp(getenv("HTTP_CLIENT_IP"),"unknown"))
      $ip = getenv("HTTP_CLIENT_IP");

      elseif (getenv("HTTP_X_FORWARDED_FOR") &&      strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
      $ip = getenv("HTTP_X_FORWARDED_FOR");

      elseif (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
      $ip = getenv("REMOTE_ADDR");

      elseif (!empty($_SERVER['REMOTE_ADDR']) && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))
      $ip = $_SERVER['REMOTE_ADDR'];

      else
      $ip = "unknown";

      return($ip);
 }

使用此功能的示例

 if (getip()=="10.0.0.01") die("Your IP address is blocked");

答案 3 :(得分:0)

使用.htaccess文件,您可以阻止IP

像这样,

在.htaccess文件中添加此行

  

订单拒绝,允许

     

拒绝192.168.1.2

它也可以由PHP方面完成

<?php
   if(strpos($_SERVER['REMOTE_ADDR'],"192.168.1.2") === 0){
     echo "IP: Blocked";die();
   }
?>

答案 4 :(得分:0)

有很多方法可以做到。但是如果你想用.php做,你可以按照以下方式进行操作

AyncTask