首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Ipv4与ipv6客户端识别

Ipv4与ipv6客户端识别
EN

Stack Overflow用户
提问于 2018-03-05 10:59:50
回答 1查看 278关注 0票数 0

我想知道HTTP请求是否可以同时保存客户端的ipv4和ipv6地址?

我正在编写一个.NET应用程序,并正在使用以下方法探索客户端的IP地址:

代码语言:javascript
运行
复制
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地址?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-05 11:30:20

在单个HTTP请求中无法从客户端获取多个地址。有几个复杂的问题:

  • 正如您已经怀疑的,HTTP连接一次使用一个协议
  • 客户端拥有多个IPv6地址是非常常见的,这些地址随着时间的推移而变化
  • 客户端可能根本没有多个地址,并且是仅使用IPv6 4或IPv6 6。
  • 使用地址作为标识是很棘手的: ISP使用NAT44和NAT64来节省地址空间,IPv6地址通常会随着时间的推移而改变(至少在相同的前缀内,有时前缀也会改变)。

如果您想得到最好的估计,那么您可以在页面上加载两个图像:一个是托管在IPv6 4上的主机名,另一个是IPv6 6专用的主机名。在URL中包含一个唯一的标识符,您可能能够关联大多数用户的IPv4和IPv6地址。但这需要多次请求,而且并不完美,所以从技术上讲,这不是你问题的答案.

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49108928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档