13

我应该使用binary(16)orvarbinary(16)吗?

我知道我可以使用 getAddress()in java.net.InetAddress(Java) 或System.Net.IPAddress(C#) 来获得 and 的表示byte[],但是如果我需要将ie插入到 in的字段中,我是否需要担心填充或任何事情?IPv4IPv6IPv4binary(4)binary(16)SQL Server

4

2 回答 2

17

如果您将 a 存储binary(4)在一binary(16)列中,当您阅读它时,您会得到一个长度为 16 的填充值。如果您想要动态长度,则必须使用 a varbinary(16)。这种类型保留了插入数据的长度,代价是在磁盘上增加了额外的 2 个字节(实际长度)。

于 2010-08-25T00:02:33.093 回答
8

使用v4-in-v6 地址嵌入将您的 ipv4 地址转换为 ipv6 格式;那么你可以一视同仁地对待它们。

于 2010-08-25T00:11:48.533 回答