4

我需要获取服务器的 IP 地址,以便可以将其与键/值字符串集合一起发送到支付网关提供商。

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

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

ClientIPAddress 格式无效。不应包含前导零,并且仅包含 0 到 255 范围内的值。

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

4

1 回答 1

8

在本地网络适配器上禁用 IPv6。::1 表示 IPv6 中的“本地主机”。然后你会得到正常的 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,地址为最低有效位,否则为零)被明确定义为环回地址,[6] 尽管主机管理员可以根据需要将其他地址分配给环回接口。

于 2012-06-29T11:59:07.990 回答