1. 程式人生 > >PHP根據IP地址範圍進行重定向

PHP根據IP地址範圍進行重定向

    前段時間一個朋友找到我,需要在他的伺服器上實現根據IP地址來限制訪問者,伺服器環境為WIN+PHPStudy,經過查詢資料和測試,成功達到了朋友要求,現在把程式碼分享給大家,非常簡單明瞭,可用性強。

<?php   header("Content-type: text/html; charset=utf-8"); if(ip_in_network(getIP(),"192.168.0.1","192.168.0.55"))//判斷IP段 {     header("Location:http://www.baidu.com");//在IP段內的使用者跳轉到此連結 } else {     header("Location:http://www.csdn.net");//不在IP段內的使用者跳轉到此連結 }

//獲取使用者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 (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")) $ip = $_SERVER['REMOTE_ADDR']; else $ip = "0.0.0.0"; return $ip; } //判斷IP是否在某段IP內 function ip_in_network($user_ip, $ip_start, $ip_end) {     $ip=ip2long($user_ip);     $start=ip2long($ip_start); //ip段開始     $end=ip2long($ip_end);//ip段結束         if ($ip>=$start && $ip<=$end)             {             return true;                          }             return false; }

?>