我的服务器放在防火墙的DMZ区,服务器上通过$_SERVER['REMOTE_ADDR']取不到访问者的IP,取的是防火墙的公网IP? 我的服务器放在防火墙的DMZ区,服务器上通过$_SERVER['REMOTE_ADDR']取不到访问者的IP,取的是防火墙的公网IP? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 print_r($_SERVER)看看里面有没有你想要的ip if($_SERVER['HTTP_CLIENT_IP']) { $login_ip = $_SERVER['HTTP_CLIENT_IP']; }elseif($_SERVER['HTTP_X_FORWARDED_FOR']){ $login_ip = $_SERVER['HTTP_X_FORWARDED_FOR']; }else{ $login_ip = $_SERVER['REMOTE_ADDR']; } function get_client_ip(){ if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "0.0.0.0")) $ip = getenv("HTTP_CLIENT_IP"); else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "0.0.0.0")) $ip = getenv("HTTP_X_FORWARDED_FOR"); else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "0.0.0.0")) $ip = getenv("REMOTE_ADDR"); else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "0.0.0.0")) $ip = $_SERVER['REMOTE_ADDR']; else $ip = "0.0.0.0"; return($ip);} 我用print_r()打印出来,根本没有$_SERVER['HTTP_CLIENT_IP'] 、$_SERVER['HTTP_X_FORWARDED_FOR']这两项,只有$_SERVER['REMOTE_ADDR'] ,而且 $_SERVER['REMOTE_ADDR']取到的值所有值都是我的防火墙的公网IP我听到防火墙会将公网过来的数据包改变源地址,会不会是这个原因呢?如果是,我在防火墙上应该怎么配置呢?谢谢 如果是做了NAT转换,在防火墙上应该怎么设置才可以得到visitor的IP地址呢?NAT转换有没有替代的方法?谢谢 php 我在一个函数中建立了一个Cookie,可在另一个函数中却不认它? 话说 有人在用2003系统嘛... 精通ie浏览器的进,一个页面跳转很奇怪的问题 问俩比较基础的问题!!!!!!!!!!!!!!!! 新的一年更上一层楼! 请问这条SQL语句哪有错? 记录日志 是用mysql好,还是用文本好? 求个MySQL的SQL语句,请各位大老帮忙. 如何用php得到一个网络文件的大小! 消息群發,數據表設計規則 phpmailer mail-body能否使用循环?
{
$login_ip = $_SERVER['HTTP_CLIENT_IP'];
}elseif($_SERVER['HTTP_X_FORWARDED_FOR']){
$login_ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}else{
$login_ip = $_SERVER['REMOTE_ADDR'];
}
if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "0.0.0.0"))
$ip = getenv("HTTP_CLIENT_IP");
else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "0.0.0.0"))
$ip = getenv("HTTP_X_FORWARDED_FOR");
else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "0.0.0.0"))
$ip = getenv("REMOTE_ADDR");
else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "0.0.0.0"))
$ip = $_SERVER['REMOTE_ADDR'];
else
$ip = "0.0.0.0";
return($ip);
}