分页: 1 / 1
迁移后发现记录的 IP 地址不正确.
发表于 : 2016年10月6日 17:40
由 YamatoRyou
空间: Openshift, 地址:
https://tiebasign-yamatoryou.rhcloud.com/bbs
操作系统: Linux
phpBB 版本: 3.1.9
PHP 版本: 5.3.14
MySQL 版本: 5.1.73
由于从别的空间迁移时保留了操作日志, 我最近发现迁移后用户注册; 发帖; 管理员登录; 控制面板等操作均显示为空间的本地 IP: 127.6.233.129. 如何使其显示正确的 IP?
截图地址:
http://imgsrc.baidu.com/forum/pic/item/ ... 44ad07.jpg
Re: 迁移后发现记录的 IP 地址不正确.
发表于 : 2016年10月8日 13:09
由 davidyin
看上去,你的网站是在一个反向代理服务器后面,所以所取得的用户ip就是服务器的ip地址了。
这个要看服务器到底是如何处理真实ip地址的。
看看这段代码,并放到服务器上,看看其ip地址的情况。
代码: 全选
<?php
echo 'Server IP: ' . $_SERVER['SERVER_ADDR'] . '<br />';
echo 'Your IP: ' . $_SERVER['REMOTE_ADDR'];
if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
{
echo '<br />Forwarded For: ' . $_SERVER['HTTP_X_FORWARDED_FOR'];
}
?>
如果返回的前两个地址是一样的,就可以基本确定是在反向代理服务器后面。
Re: 迁移后发现记录的 IP 地址不正确.
发表于 : 2016年10月8日 15:26
由 YamatoRyou
davidyin 写了: ↑2016年10月8日 13:09
看上去,你的网站是在一个反向代理服务器后面,所以所取得的用户ip就是服务器的ip地址了。
这个要看服务器到底是如何处理真实ip地址的。
看看这段代码,并放到服务器上,看看其ip地址的情况。
代码: 全选
<?php
echo 'Server IP: ' . $_SERVER['SERVER_ADDR'] . '<br />';
echo 'Your IP: ' . $_SERVER['REMOTE_ADDR'];
if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
{
echo '<br />Forwarded For: ' . $_SERVER['HTTP_X_FORWARDED_FOR'];
}
?>
如果返回的前两个地址是一样的,就可以基本确定是在反向代理服务器后面。
返回如下:
Server IP: 127.6.233.129
Your IP: 127.6.233.129
Forwarded For: 1.181.*.* (为我的实际 IP)
看起来无解. 感谢解答.
Re: 迁移后发现记录的 IP 地址不正确.
发表于 : 2016年10月8日 15:41
由 davidyin
请尝试下面的方法。
修改 /includes/startup.php
找到
代码: 全选
if (!defined('IN_PHPBB'))
{
exit;
}
之后添加如下代码:
代码: 全选
if(!empty($_SERVER['HTTP_X_FORWARDED_FOR']) && $_SERVER['SERVER_ADDR'] == $_SERVER['REMOTE_ADDR'])
{
$_SERVER['REMOTE_ADDR'] = htmlspecialchars((string) $_SERVER['HTTP_X_FORWARDED_FOR']);
}
看看这样是否可以临时解决问题。
Re: 迁移后发现记录的 IP 地址不正确.
发表于 : 2016年10月8日 17:05
由 YamatoRyou
davidyin 写了: ↑2016年10月8日 15:41
请尝试下面的方法。
修改 /includes/startup.php
找到
代码: 全选
if (!defined('IN_PHPBB'))
{
exit;
}
之后添加如下代码:
代码: 全选
if(!empty($_SERVER['HTTP_X_FORWARDED_FOR']) && $_SERVER['SERVER_ADDR'] == $_SERVER['REMOTE_ADDR'])
{
$_SERVER['REMOTE_ADDR'] = htmlspecialchars((string) $_SERVER['HTTP_X_FORWARDED_FOR']);
}
看看这样是否可以临时解决问题。
由于我不会 PHP, 所以这样插入了代码:
截图地址
http://imgsrc.baidu.com/forum/pic/item/ ... 99f3a4.jpg
保存修改后进入控制台更改某个设置, IP 地址仍然不变.
http://imgsrc.baidu.com/forum/pic/item/ ... 2da63a.jpg
Re: 迁移后发现记录的 IP 地址不正确.
发表于 : 2016年10月8日 17:09
由 YamatoRyou
原来是我把代码写错了.
再次修改后重试发现已经变为我的 IP 地址.
非常感谢提供代码.
Re: 迁移后发现记录的 IP 地址不正确.
发表于 : 2016年10月8日 17:11
由 YamatoRyou
davidyin 写了: ↑2016年10月8日 15:41
请尝试下面的方法。
修改 /includes/startup.php
找到
代码: 全选
if (!defined('IN_PHPBB'))
{
exit;
}
之后添加如下代码:
代码: 全选
if(!empty($_SERVER['HTTP_X_FORWARDED_FOR']) && $_SERVER['SERVER_ADDR'] == $_SERVER['REMOTE_ADDR'])
{
$_SERVER['REMOTE_ADDR'] = htmlspecialchars((string) $_SERVER['HTTP_X_FORWARDED_FOR']);
}
看看这样是否可以临时解决问题。
由于我不会 PHP, 所以这样插入了代码:
截图地址
http://imgsrc.baidu.com/forum/pic/item/ ... 99f3a4.jpg
保存修改后进入控制台更改某个设置, IP 地址仍然不变.
http://imgsrc.baidu.com/forum/pic/item/ ... 2da63a.jpg
---------------
原来是我把代码写错了.
再次修改后重试发现已经变为我的 IP 地址.
非常感谢提供代码.
Re: 迁移后发现记录的 IP 地址不正确.
发表于 : 2016年10月8日 17:44
由 davidyin
这只是一个临时措施。希望还是修改主机设置的地方,使其能正确返回用户IP。