gpt4 book ai didi

mysql - 将 IPv4、IPv6 地址存储为字符串的大小

转载 作者:IT老高 更新时间:2023-10-28 12:54:10 36 4
gpt4 key购买 nike

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

最佳答案

假设字符串中的文本表示:

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

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

存储为字符串的替代方案:

  • 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 字节),但是将使用两个字段。

关于mysql - 将 IPv4、IPv6 地址存储为字符串的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3455320/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com