我们需要记录所有使用基于 Java EE 5 的 Web 应用程序的用户的 IP 地址信息。
在以下支持的数据库(h2、mysql、oracle)中存储 IPv4 或 IPv6 地址的合适 sql 数据类型是什么?
还需要过滤来自某些 IP 地址的活动。我是否应该将表示形式视为字符串字段(例如 varchar(32) 来保存 ipv4、ipv6 地址)?
我会将 IP 地址存储在varchar(15)
. 这很容易阅读,您可以过滤特定的 IP,例如where ip = '1.2.3.4'
.
如果您必须在网络上进行过滤,例如1.2.3.4/24
,那就是另一回事了。在这种情况下,最好将 IP 地址存储为 4 字节二进制文件。
如果您有大量数据并且必须搜索,为了提高性能,最好将 IP 的字符串(点)表示转换为其适当的整数值。
其中任何一个都是有效的
话虽如此,SQL Server 的 sys.dm_exec_connections 的 varchar(48) ......