我需要获取服务器的IP地址,以便将其与Key / Value字符串集合一起发送到Payment Gateway提供商。
我正在运行localhost,Request.ServerVariables["LOCAL_ADDR"]
正在返回::1
我收到的验证错误是从Sage Pay返回的:
ClientIPAddress格式无效。不应该包括领先 零',只包括0到255范围内的值。
为什么会这样,以及如何获得有效的IP地址发送?
答案 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]虽然可能是附加地址 根据需要由主机分配给环回接口 管理员。