zcharming 发表于 2018-6-25 21:21:37

我用apache php怎么获得访问者的真实IP呢?用vip线路全部变成127.0.0.1

我用apache php怎么获得访问者的真实IP呢?用vip线路全部变成127.0.0.1   能提供一下php的解决方案吗?

nat123jia 发表于 2018-6-25 21:24:02

你可以参与此贴获得访客真实IP:
http://www.nat123.com/Pages_8_120.jsp

zcharming 发表于 2018-6-25 22:20:19

$_SERVER["HTTP_X_FORWARDED_FOR"]   用这个提示没有这个HTTP_X_FORWARDED_FOR参数!没法用这个方法。 我的php是7.2版本。

zcharming 发表于 2018-6-25 22:30:36

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地址

nat123jia 发表于 2018-6-25 22:30:44

你可以使用php读取整个http头,然后截取里边的ip信息

zcharming 发表于 2018-6-25 23:16:02

getallheaders()不就是吗?

zcharming 发表于 2018-6-25 23:56:40

测试过了, $_SERVER 没有HTTP_X_FORWARDED_FOR这个参数,getallheaders()也没有这个返回值(似乎第1次有,但之后又没有)。我用的是80映射vip3+ 加速1   。 获利访问者IP是我程序需要的,请协助解决。程序是PHP7.2.6版本。

nat123jia 发表于 2018-6-26 06:46:11

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);
}


?>

nat123jia 发表于 2018-6-26 06:56:54

部分环境使用的是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

reyo 发表于 2018-6-26 08:37:42

我也遇到一样的问题了
先不要说程序能不能获取到ip

就是nginx 自己的日志也没办法获取到访问者的ip
页: [1] 2 3
查看完整版本: 我用apache php怎么获得访问者的真实IP呢?用vip线路全部变成127.0.0.1