我想要用户正在查看当前页面的IP地址
我正在使用
echo $_SERVER['REMOTE_ADDR'];
它向我显示127.0.0.1
答案 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]);