Magento中客户的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

我想要用户查看当前页面的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-分配此块用作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
好得多)