1.獲取真正ip地址
function get_ip(){ //判斷服務器是否允許$_SERVER if(isset($_SERVER)){ if(isset($_SERVER[HTTP_X_FORWARDED_FOR])){ $realip = $_SERVER[HTTP_X_FORWARDED_FOR]; }elseif(isset($_SERVER[HTTP_CLIENT_IP])) { $realip = $_SERVER[HTTP_CLIENT_IP]; }else{ $realip = $_SERVER[REMOTE_ADDR]; } }else{ //不允許就使用getenv獲取 if(getenv("HTTP_X_FORWARDED_FOR")){ $realip = getenv( "HTTP_X_FORWARDED_FOR"); }elseif(getenv("HTTP_CLIENT_IP")) { $realip = getenv("HTTP_CLIENT_IP"); }else{ $realip = getenv("REMOTE_ADDR"); } } return $realip; }
2.驗證ip是否合理兩種方法
# 一
/** * 判斷IP輸入是否合法 * @param type $ip IP地址 * @return int 等於1是輸入合法 0 輸入不合法 */ public static function isIp($ip) { if (preg_match('/^((?:(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(?:25[0-5]|2[0-4]\d|((1\d{2})|([1 -9]?\d))))$/', $ip)) { return 1; } else { return 0; } }
# 二
function checkIp($ip) { $arr = explode('.',$ip); if(count($arr) != 4){ return false; }else{ for($i = 0;$i < 4;$i++){ if(($arr[$i] <'0') || ($arr[$i] > '255')){ return false; } } } return true; }