proxy代理   soft软件   IT 业界特快   norton 诺顿病毒库   代理列表   search FTP搜索   whois IP地理位置   blog 追求完美  
money理财   life生活   RSS聚合门户   firefox WEB浏览器   免费域名   typeset 假古文   AntiVirus 反病毒   ipcn 站点导航  

« OpenSSH Pre-Authentication CRC32 DoS | Main | 批量设置 IP 的 shell 代码 »

October 9, 2006

处理 X-Forwarded-For 的 php 代码

版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明。
https://windtear.net/archives/2006/10/09/001109.html
http://windtear.net/archives/2006/10/09/001109.html

处理 X-Forwarded-For 的 php 代码

处理 X-Forwarded-For 的 php 示意代码如下 (其他细节处理略)

$r = $_SERVER['REMOTE_ADDR'];
$x = $_SERVER['HTTP_X_FORWARDED_FOR'];

if($r=="unknown") {
	$x = explode(',', $x);
	for ($i=0;$i<count($x);$i++) {
		$x[$i]=trim($x[$i]);
		if(preg_match("/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/", $x[$i])) {
			$r=$x[$i];
			break;
		}
	}
}

关于IP判断的优化调整:
判断 ip 格式的 php 程序代码
http://windtear.net/archives/2006/06/17/001008.html

function is_ip($str) {
	//if(!strcmp(long2ip(sprintf("%u",ip2long($ip))),$ip)) return 1;
	//else return 0;
	$ip = explode(".", $str);
	if (count($ip)<4 || count($ip)>4) return 0;
	foreach($ip as $ip_addr) {
		if ( !is_numeric($ip_addr) ) return 0;
		if ( $ip_addr<0 || $ip_addr>255 ) return 0;
	}
    return (preg_match("/^([0-9]{1,3}\.){3}[0-9]{1,3}$/is", $str));
}
本blog WWW

Posted by windtear at October 9, 2006 2:01 PM

本站使用中的任何问题,请与 windtear @ windtear.net 联系
Copyright© 1999-2024 Windtear. All rights reserved.