将IPv4,IPv6地址存储为字符串的大小

在MySQL数据库中以字符串形式存储IPv4,IPv6地址的理想大小应该是多少。varchar(32)是否足够?

回答:

  • IPv4 15个字符(xxx.xxx.xxx.xxx格式,12 + 3分隔符)
  • IPv6的45个字符

这些是字符串的最大长度。

  • IPv4是32位,因此可以容纳4个字节的MySQL数据类型可以做到,使用INT UNSIGNED和共同使用INET_ATONINET_NTOA处理从地址到数字以及从数字到地址的转换

SELECT INET_ATON('209.207.224.40');

-> 3520061480

SELECT INET_NTOA(3520061480);

-> '209.207.224.40'

  • 不幸的是,对于IPv6,MySQL的数据类型不是16字节,但是可以将IPv6转换为规范形式,然后将其分成2个BIGINT(8字节),但是它将使用两个字段。

以上是 将IPv4,IPv6地址存储为字符串的大小 的全部内容, 来源链接: utcz.com/qa/431266.html

回到顶部