我想要用户查看当前页面的 IP 地址
我正在使用
echo $_SERVER['REMOTE_ADDR'];
它告诉我127.0.0.1
这是获取客户 IP 地址的 Magento 函数:
echo Mage::helper('core/http')->getRemoteAddr();
getRemoteAddr()
也接受一个布尔参数。当false
(默认)时,它将返回 IP 地址作为常用点分十进制表示法的字符串(例如 192.168.0.1)。何时true
以十进制表示法返回 IP - 一个 32 位整数。请参阅IPv4 地址表示以了解这些格式。
当 Magento(服务器)和浏览器(客户端)都在您的计算机上时(localhost
),那么这不是错误,而是更正 PHP$_SERVER['REMOTE_ADDR']
包含127.0.0.1
(或::1
)。
这是因为 127.0.0.1 是任何localhost
.
请参阅RFC 5735的“3. 全局和其他专用地址块”部分:
127.0.0.0/8 - 此块被分配用作 Internet 主机环回地址。由更高级别协议发送到该块内任何地址的数据报在主机内部循环返回。这通常仅使用 127.0.0.1/32 进行环回来实现。
你可以使用这个:Mage::helper('core/http')->getRemoteAddr();
这将返回 IP 地址,例如 '127.0.0.1'
使用Mage::helper('core/http')->getRemoteAddr(true);
时会返回 long (2130706433)
如果您的机器在代理后面,最好使用这种代码:
$ips = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); $ip =trim($ips[count($ips) - 1]);