我正在使用ASP.NET开发一个网站。我想为我的用户实现登录身份验证。如果用户经常输入错误的密码,我想实现密码验证延迟。
所以我有字段来存储IPV4地址以识别用户的IP。目前我使用unsigned int字段来存储IPV4地址。
所以我的问题是IPV6地址怎么样?我需要担心IPV6地址吗?目前我没有数据字段来存储IPV6地址。
我是否需要修改我的Web应用程序以识别IPV4和IPV6地址?
IPV6实际上是否正在使用?
答案 0 :(得分:3)
是的,您需要能够处理IPv6地址。越来越多的ISP已经开始提供IPv6连接(比利时30%的用户使用IPv6,美国的某些移动服务提供商使用的是50%以上的IPv6等)。您的用户将能够通过IPv6进行连接几乎可以确定您今天构建的任何网站。
如何存储地址是一个不同的问题。一些数据库(例如PostgreSQL)具有用于存储IPv4 / v6地址的特殊字段类型。如果可能的话使用那些将它们存储为整数并不是很实用,除非您对128位整数有本机支持。可以将它们存储为文本。应根据RFC 5952的规则编写IPv6地址。大多数提供IPv6地址文本表示的库函数都应按照这些规则输出,因此您不需要自己实现任何内容。
还要记住,使用IPv6时,用户可以使用许多IPv6地址。使用IPv4,他们通常使用NAT,整个网络将显示为单个地址。使用IPv6,每个设备都有一个或多个全局地址。单个LAN通常为/64
(前64位保持不变,设备可以使用最后64位),因此您可能需要在确定速率限制时将其考虑在内。