【问题标题】:Do I need to worry about IPV6 addresses when developing web applications?开发 Web 应用程序时是否需要担心 IPV6 地址?
【发布时间】:2015-01-16 23:07:14
【问题描述】:

我正在使用 ASP.NET 开发网站。我想为我的用户实现登录身份验证。如果用户经常输入错误的密码,我想实现密码验证延迟。

所以我有字段来存储 IPV4 地址来识别用户的 IP。目前我正在使用 unsigned int 字段来存储 IPV4 地址。

所以我的问题是 IPV6 地址呢?我需要担心 IPV6 地址吗?目前我没有数据字段来存储 IPV6 地址。

我是否需要修改我的 Web 应用程序以识别 IPV4 和 IPV6 地址?

IPV6 实际使用了吗?

【问题讨论】:

  • 而不是“在实践中使用 IPV6”,您可能真正的意思是“在我的 Web 应用程序的生命周期中,IPv6 会在实践中广泛使用”。除非你是非常务实的 YAGNI。

标签: asp.net ipv6 ipv4


【解决方案1】:

是的,您需要能够处理 IPv6 地址。越来越多的 ISP 已经在提供 IPv6 连接(比利时 30% 的地区使用 IPv6,美国的某些移动供应商 > 50% 使用 IPv6 等)。对于您今天构建的任何网站,您的用户将能够通过 IPv6 进行连接几乎是肯定的。

如何存储地址是另一个问题。一些数据库(例如 PostgreSQL)具有用于存储 IPv4/v6 地址的特殊字段类型。如果可能的话,使用那些。除非您对 128 位整数有本机支持,否则将它们存储为整数并不是很实用。可以将它们存储为文本。 IPv6 地址应按照RFC 5952 的规则编写。大多数提供 IPv6 地址文本表示的库函数都应该按照这些规则输出,因此您不需要自己实现任何东西。

还请记住,对于 IPv6,用户有许多可用的 IPv6 地址。对于 IPv4,他们通常使用 NAT,整个网络将显示为单个地址。对于 IPv6,每台设备都有一个或多个全局地址。单个 LAN 通常是 /64(前 64 位保持不变,后 64 位可供设备使用),因此您在确定速率限制时可能需要考虑这一点。

【讨论】:

  • 非常感谢 Sander Steffann。多么棒的回复。你能告诉我如何在 MySQL 数据库中实现这个以支持 IPV4 和 IPV6 吗?还有我需要处理的事情背后的任何代码吗?如果您可以就此写一个详细的详细答案,那将是非常棒的,并且对开发人员非常有帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-11-18
  • 2020-04-09
  • 2010-10-15
  • 2019-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多