我应该使用binary(16)
orvarbinary(16)
吗?
我知道我可以使用 getAddress()
in java.net.InetAddress
(Java) 或System.Net.IPAddress
(C#) 来获得 and 的表示byte[]
,但是如果我需要将ie插入到 in的字段中,我是否需要担心填充或任何事情?IPv4
IPv6
IPv4
binary(4)
binary(16)
SQL Server
我应该使用binary(16)
orvarbinary(16)
吗?
我知道我可以使用 getAddress()
in java.net.InetAddress
(Java) 或System.Net.IPAddress
(C#) 来获得 and 的表示byte[]
,但是如果我需要将ie插入到 in的字段中,我是否需要担心填充或任何事情?IPv4
IPv6
IPv4
binary(4)
binary(16)
SQL Server
如果您将 a 存储binary(4)
在一binary(16)
列中,当您阅读它时,您会得到一个长度为 16 的填充值。如果您想要动态长度,则必须使用 a varbinary(16)
。这种类型保留了插入数据的长度,代价是在磁盘上增加了额外的 2 个字节(实际长度)。
使用v4-in-v6 地址嵌入将您的 ipv4 地址转换为 ipv6 格式;那么你可以一视同仁地对待它们。