Magento的客户IP地址

时间:2012-05-23 06:25:11

标签: magento

我想要用户正在查看当前页面的IP地址

我正在使用

echo $_SERVER['REMOTE_ADDR'];

它向我显示127.0.0.1

4 个答案:

答案 0 :(得分:22)

以下是获取客户IP地址的Magento功能:

echo Mage::helper('core/http')->getRemoteAddr();

getRemoteAddr()也接受布尔参数。当false(默认值)时,它将以通用点分十进制表示法(例如192.168.0.1)将字符串作为字符串返回。当true它将以十进制表示法返回IP时 - 一个32位整数。请参阅IPv4 Address Representations以了解格式。

答案 1 :(得分:1)

当Magento(服务器)和浏览器(客户端)都在您的计算机上时(localhost),那么它错误,但要更正PHP&#39 ; $_SERVER['REMOTE_ADDR']包含127.0.0.1(或::1)。

这是因为127.0.0.1是任何localhost的标准IPv4环回地址。

参见" 3节。全球和其他专业地址块" RFC 5735

  

127.0.0.0/8 - 此块被指定用作Internet主机环回地址。由更高级别协议发送到该块内任何地址的数据报循环回主机内部。这通常仅使用127.0.0.1/32来实现环回。

答案 2 :(得分:0)

你可以使用这个:Mage::helper('core/http')->getRemoteAddr();

这将返回ip地址,例如'127.0.0.1'

当您使用Mage::helper('core/http')->getRemoteAddr(true);时,它将返回long(2130706433)

答案 3 :(得分:0)

如果你的机器在代理后面,最好使用这种代码:

$ ips = explode(',',$ _SERVER ['HTTP_X_FORWARDED_FOR']); $ ip = trim($ ips [count($ ips) - 1]);