程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php實現封IP功能[原創]

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("<script>alert('對不起,你輸入的信息有誤!');history.back();</script>");
 }
 $sql="update su_lockip set lockip='$UlockIp'";
 if(mysql_query($sql)){
  exit("<script>alert('鎖定成功!');history.back();</script>");
 }else{
  exit("<script>alert('對不起,你輸入的信息有誤!');history.back();</script>");
 }

就這麼簡單,最後就是進行鎖定的了.下面代碼是根據數據中是否存用戶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 < count($ips); $i++) {
     if (!eregi ("^(10|172\.16|192\.168)\.", $ips[$i])) {
      $ip = $ips[$i];
      break;
     }
    }
   }
   return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);
 }

哈哈寫完了就這麼簡單,沒有進行安全過濾處理.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved