Magento中客户的IP地址
我想要用户查看当前页面的IP地址 我正在使用Magento中客户的IP地址,magento,Magento,我想要用户查看当前页面的IP地址 我正在使用 echo $_SERVER['REMOTE_ADDR']; 当Magento(服务器)和浏览器(客户端)都在您的计算机上(localhost)时,它会向我显示127.0.0.1),那么这不是一个错误,而是更正PHP的$\u服务器['REMOTE\u ADDR']包含127.0.0.1(或::1) 这是因为127.0.0.1是任何localhost的标准IPv4环回地址 见以下章节“3.全局和其他专用地址块”: 127.0.0.0/8-分配此块用作I
echo $_SERVER['REMOTE_ADDR'];
当Magento(服务器)和浏览器(客户端)都在您的计算机上(localhost
)时,它会向我显示127.0.0.1
),那么这不是一个错误,而是更正PHP的$\u服务器['REMOTE\u ADDR']
包含127.0.0.1
(或::1
)
这是因为127.0.0.1是任何localhost
的标准IPv4环回地址
见以下章节“3.全局和其他专用地址块”:
127.0.0.0/8-分配此块用作Internet主机环回地址。由高级协议发送到该块中任意地址的数据报在主机内部循环。这通常仅使用127.0.0.1/32实现环回
以下是获取客户IP地址的Magento函数:
echo Mage::helper('core/http')->getRemoteAddr();
getRemoteAddr()
也接受布尔参数。当false
(默认)时,它将以普通点十进制表示法(例如192.168.0.1)的字符串形式返回IP地址。当true
时,它将以十进制表示法返回IP——一个32位整数。请参阅以了解格式。您可以使用此格式:Mage::helper('core/http')->getRemoteAddr()代码>
这将返回ip地址,如“127.0.0.1”
当您使用Mage::helper('core/http')->getRemoteAddr(true)代码>它将返回long(2130706433)如果您的机器在代理之后,最好使用这种代码:
$ips=explode(“,”,$”服务器['HTTP\u X\u FORWARDED\u FOR']);
$ip=修剪($ips[计数($ips)-1]) 您是否在localhost上运行服务器?是的,我在localhost上运行服务器,那么它是否没有显示预期的IP?显示127.0.0.1
,这不是我的IP地址,127.0.0.1是的标准IP地址。为什么您认为它显示错误?为什么您添加了true
?它返回ip2long
。这有什么好处吗?Magento集成商应该注意app/etc/local.xml.adder中的//remote\u addr\u headers
字段,以便在客户端和源web服务器之间使用反向代理或负载平衡器时获得正确的客户端地址。@MohammadFaisal很少使用32位格式的IP地址。它在没有“真正”IP支持的系统中作为数据类型很有用(例如,数据库中的int
比varchar
好得多)