您好,欢迎访问一九零五行业门户网

php实现封IP功能[原创]_PHP教程

2008-01-24 00:00:00
//
本文由本站原创:www.drise.cn
作者:www.drise.cn
转载请注明:来自www.drise.cn
qq:271728967
//
早起一起突然看到,我的网站有人在恶心乱搞,为了防止这种事情我想了一个办法那就是封用户的ip了.
首页我们来建数据库:
create table `su_lockip` (
  `id` int(4) not null auto_increment,
  `lockip` varchar(1024) default null,
  primary key  (`id`)
)
下页来创建一个封文件的页面,主要是用户写入ip以|分开,这个页面就不多写了,我就简单的写一下,入库代码$ulockip=$_post['z']?$_post['z']:''; 
 if(empty($ulockip)){
  exit();
 }
 $sql=update su_lockip set lockip='$ulockip';
 if(mysql_query($sql)){
  exit();
 }else{
  exit();
 }
就这么简单,最后就是进行锁定的了.下面代码是根据数据中是否存用户ip,如果在就提示被kill了.代码如下:
function lock_user_ip(){
 $usql =mysql_query(select * from su_lockip);
 $urs =mysql_fetch_array($usql);
 $ulockip=$urs['lockip'];
 $clockip=$this->get_real_ip();
 $iplist =explode('|',$ulockip);
 if(in_array($clockip,$iplist)){
  exit('sorry system lock your ip');
 }
 }
function get_real_ip(){//这段代码来是互联网.
   $ip=false;
   if(!empty($_server[http_client_ip])){
    $ip = $_server[http_client_ip];
   }
   if (!empty($_server['http_x_forwarded_for'])) {
    $ips = explode (, , $_server['http_x_forwarded_for']);
    if ($ip) { array_unshift($ips, $ip); $ip = false; }
    for ($i = 0; $i      if (!eregi (^(10|172\.16|192\.168)\., $ips[$i])) {
      $ip = $ips[$i];
      break;
     }
    }
   }
   return ($ip ? $ip : $_server['remote_addr']);
 }
哈哈写完了就这么简单,没有进行安全过滤处理.
http://www.bkjia.com/phpjc/631849.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/631849.htmltecharticle2008-01-24 00:00:00 // 本文由本站原创:www.drise.cn 作者:www.drise.cn 转载请注明:来自www.drise.cn qq:271728967 // 早起一起突然看到,我的网站有人在恶心乱...
其它类似信息

推荐信息