我想知道HTTP请求是否有可能同时保存客户端的ipv4和ipv6地址?
我正在编写.NET应用程序,并使用以下方法探测客户端的IP地址:
HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
Dns.GetHostAddresses(Dns.GetHostName())
我假设一个HTTP请求总是发送到一个地址,IPV4或IPV6,都不能正确吗?即使它被FQDN调用了吗?
理论上甚至可以在单个http呼叫期间同时获取客户端的ipv4和ipv6地址吗?
答案 0 :(得分:3)
无法在单个HTTP请求中从客户端获取多个地址。有几个并发症:
如果您想获得最佳估计值,那么您可以在页面上加载两个图像:一个托管在仅IPv4主机名上,另一个托管在仅IPv6主机名上。在URL中包含唯一标识符,您可以为大多数用户关联IPv4和IPv6地址。但这需要多次请求,并且它不会是完美的,所以从技术上讲,它不是你问题的答案......