Request.ServerVariables ["LOCAL_ADDR"]返回":: 1"

Cur*_*urt 3 asp.net

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

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

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

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

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

Tis*_*sho 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].