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