Request.ServerVariables [“LOCAL_ADDR”]返回“:: 1”

时间:2012-06-29 11:57:28

标签: asp.net

我需要获取服务器的IP地址,以便将其与Key / Value字符串集合一起发送到Payment Gateway提供商。

我正在运行localhost,Request.ServerVariables["LOCAL_ADDR"]正在返回::1

我收到的验证错误是从Sage Pay返回的:

  

ClientIPAddress格式无效。不应该包括领先   零',只包括0到255范围内的值。

为什么会这样,以及如何获得有效的IP地址发送?

1 个答案:

答案 0 :(得分:7)

在本地网络适配器上禁用IPv6。 :: 1表示IPv6中的“LOCALHOST”。然后你将获得正常的IPv4 127.0.0.1

无论如何:: 1是* VALID * IP地址..

有关LOCALHOST定义的更多信息:http://en.wikipedia.org/wiki/Localhost

  

对于 IPv4 通信,计算机的虚拟环回接口   通常会为系统分配带有子网掩码的地址 127.0.0.1   255.0.0.0。根据所使用的特定操作系统(特别是在Linux和Microsoft Windows中)和安装的路由机制,   这将使用条目填充本地系统的路由表   发往127.0.0.0/8块的任何地址的数据包会   在内部路由到网络环回设备。

     

IPv6 中,在   另一方面,环回路由前缀:: 1/128只包含一个   地址 :: 1 (0:0:0:0:0:0:0:1为完整表示法,地址为1   在其最低有效位和否则为零)是明确定义的   作为环回地址,[6]虽然可能是附加地址   根据需要由主机分配给环回接口   管理员。