php屏蔽某ip段或ip对网页的访问

2013-4-2 Linyuting.cn 程序设计

    可以禁止某个ip或者ip短用户的访问,原理比较简单,就直接获取访客ip地址后进行对比。

<?php

//屏蔽某ip地址 开始

$ip=get_theip();

$ip_blacklist=array("12.34.45.67","127.0.0.1","8.0.0.1");//要屏蔽的ip地址

if(in_array($ip,$ip_blacklist))

{

  exit('访问被禁止!');

}

else

{

  echo "success.";

}

//屏蔽某ip地址 结束

 

//屏蔽某ip段 开始

$ip=ip2long(get_theip());

$ip_blacklist_start="127.0.0.1";//ip尾段下限

$ip_blacklist_end="127.0.255.255";//ip尾段上限

if ($ip>$ip_blacklist_start && $ip<$ip_blacklist_end

 

 exit('禁止访问'); 

//屏蔽某ip段 结束

 

function get_theip()//获取访客ip地址

{

  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(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))

  {

    $ip=$_SERVER['REMOTE_ADDR'];

  }

  else

  {

    $ip="unknown";

  }

  return($ip);

}

?>

标签: php

评论:

简搜博客
2013-04-02 15:36
很重要的知识,的确可以了解。。
seo优化
2013-04-02 12:50
觉得这个有必要了解下,这样可以防止一些人故意刷我们的网站
Linyuting.cn
2013-04-02 13:09
@seo优化:是啊。。上次我这站被一个美国ip的刷了1000多条评论...

发表评论:

本站由emlog驱动 粤ICP备15042739号