HttpContext.Current.Request.ServerVariables [“REMOTE_ADDR”]正在返回IPv6

时间:2011-09-07 18:30:13

标签: ipv6 httpcontext ipv4

Microsoft的HttpContext.Current.Request.ServerVariables [“REMOTE_ADDR”]正在为远程客户端返回IPv6。但是,我需要将此数据用于会话日志记录表,其中ClientIP列为varchar(15)... IOW,我需要IPv4客户端IP地址,因为IPv6会引发字符串截断错误。

这可行吗?

1 个答案:

答案 0 :(得分:2)

不,客户端的IPv4和IPv6地址完全不相关,因此在通过IPv6连接时无法找到某人的IPv4地址。也许他们甚至没有IPv4地址......或者至少不是唯一的IPv4地址。越来越多的ISP将开始在客户之间共享IPv4地址,因为他们没有足够的IPv4地址来为每个用户提供自己的地址。这也意味着如果IPv4地址来自客户共享的地址池,则用户的IPv4地址可能会随时间发生变化。

您当然可以尝试让用户通过IPv4连接。但就像我说的那样:不能保证会给你一些有用的东西。在(近)未来它会变得更糟......