我用apache php怎么获得访问者的真实IP呢?用vip线路全部变成127.0.0.1
我用apache php怎么获得访问者的真实IP呢?用vip线路全部变成127.0.0.1 能提供一下php的解决方案吗?你可以参与此贴获得访客真实IP:
http://www.nat123.com/Pages_8_120.jsp $_SERVER["HTTP_X_FORWARDED_FOR"] 用这个提示没有这个HTTP_X_FORWARDED_FOR参数!没法用这个方法。 我的php是7.2版本。 getallheaders() 看那个帖子,用这个函数看返回值,array(8) { ["Cookie"]=> string(99) "; nat123session4slb=85ac4a3ac926e983a6b213c5b2635c9e; username=%E5%B7%AB%E5%B8%88%E5%B8%AE%E4%B8%BB" ["Accept-Language"]=> string(14) "zh-CN,zh;q=0.9" ["Accept"]=> string(85) "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8" ["User-Agent"]=> string(108) "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.62 Safari/537.36" ["Upgrade-Insecure-Requests"]=> string(1) "1" ["Cache-Control"]=> string(9) "max-age=0" ["Connection"]=> string(5) "close" ["Host"]=> string(18) "play.longtime.wang" }没有IP地址 你可以使用php读取整个http头,然后截取里边的ip信息 getallheaders()不就是吗? 测试过了, $_SERVER 没有HTTP_X_FORWARDED_FOR这个参数,getallheaders()也没有这个返回值(似乎第1次有,但之后又没有)。我用的是80映射vip3+ 加速1 。 获利访问者IP是我程序需要的,请协助解决。程序是PHP7.2.6版本。 http://www.natbbs.com/testip.php
这是php版nat123的获取IP示例,里边的代码是如下:<?php
function getheaderip()
{
$ip = $_SERVER['REMOTE_ADDR'];
foreach (getallheaders() as $name => $value) {
if($name=='X_FORWARDED_FOR')
{
$ip =$value;
}
}
return $ip;
}
echo('<br/>IP:<br/>');
echo(getheaderip());
echo('<br/>IP:<br/>');
echo('REMOTE_ADDR:<br/>');
echo($_SERVER['REMOTE_ADDR']);
echo('<br/><br/><br/>');
echo(getallheaders());
foreach (getallheaders() as $name => $value) {
echo(':<br/>');
//echo($name);
echo(':');
echo($value);
}
?>
部分环境使用的是X_FORWARDED_FOR:
function getheaderip()
{
$ip = $_SERVER['REMOTE_ADDR'];
foreach (getallheaders() as $name => $value) {
if($name=='X_FORWARDED_FOR')
{
$ip =$value;
}
}
return $ip;
}
参考这里:
http://www.natbbs.com/forum.php?mod=viewthread&tid=11130&extra=&page=1 我也遇到一样的问题了
先不要说程序能不能获取到ip
就是nginx 自己的日志也没办法获取到访问者的ip