我需要获得服务器的IP地址,这样就可以将其与键/值字符串集合一起发送到支付网关提供商。
我正在运行localhost,Request.ServerVariables["LOCAL_ADDR"]正在返回::1
我得到的验证错误从Sage Pay返回:
ClientIPAddress格式无效。不应包括前导零‘s,并且只包括0到255范围内的值。
为什么是这样,我如何获得一个有效的IP地址发送?
发布于 2012-06-29 11:59:07
禁用本地网络适配器上的IPv6。::1在IPv6中的意思是‘LOCALHOST’,然后您将得到正常的IPv4 127.0.0.1。
总之:1是一个*有效* IP地址。
更多关于本地主机定义的信息:http://en.wikipedia.org/wiki/Localhost
对于IPv4通信,通常会为计算机系统的虚拟回送接口分配带有子网掩码255.0.0.0的地址127.0.0.1。根据正在使用的特定操作系统(特别是在Linux和Microsoft Windows中)和已安装的路由机制,这将使用一个条目填充本地系统的路由表,以便从127.0.0.0/8块发送到任何地址的数据包将在内部路由到网络回送设备。 另一方面,在IPv6中,环回路由前缀::1/128只包含一个地址::1 (0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
https://stackoverflow.com/questions/11261350
复制相似问题