当前位置: 首页 > 面试题库 >

IP地址使用哪种MySQL数据类型?[重复]

瞿文柏
2023-03-14
问题内容

这个问题已经在这里有了答案

9年前关闭。

可能重复:
如何在mySQL中存储IP

我想从中获取IP地址$_SERVER['REMOTE_ADDR']和其他一些$_SERVER变量,哪种数据类型是正确的呢?

VARCHAR(n)


问题答案:

由于IPv4地址的长度为4个字节,因此可以使用正好为4个字节的INTUNSIGNED):

`ipv4` INT UNSIGNED

INET_ATONINET_NTOA它们转换:

INSERT INTO `table` (`ipv4`) VALUES (INET_ATON("127.0.0.1"));
SELECT INET_NTOA(`ipv4`) FROM `table`;

对于IPv6地址,您可以BINARY改用:

`ipv6` BINARY(16)

并使用PHPinet_ptoninet_ntop进行转换:

'INSERT INTO `table` (`ipv6`) VALUES ("'.mysqli_real_escape_string(inet_pton('2001:4860:a005::68')).'")'
'SELECT `ipv6` FROM `table`'
$ipv6 = inet_pton($row['ipv6']);


 类似资料:
  • 问题内容: 我打算使用,但是我想知道如果我应该做INT并剥离句点怎么办。哪个会更好,为什么呢? 问题答案: 我想您只对IPv4地址感兴趣,而对IPv6不感兴趣。 我会在列中使用,然后使用和在文本表示形式和int值之间来回转换。

  • 问题内容: 由于MySQL似乎没有任何“布尔”数据类型,因此您“滥用”哪种数据类型在MySQL中存储正确/错误信息? 尤其是在从PHP脚本进行读写的情况下。 随着时间的流逝,我已经使用并看到了几种方法: tinyint,包含值0/1的varchar字段, 包含字符串‘0’/‘1’或’true’/’false’的varchar字段 最后枚举包含两个选项“ true” /“ false”的字段。 以上

  • 问题内容: 可以同时容纳IPv4和IPv6地址的一种数据类型。我想存储IP地址以限制一个人可以在我的网站上通过他/她的机器进行配置的数量。 问题答案: IPv4地址使用32位(4字节),IPv6地址使用128位(16字节)。因此,您可以将它们的二进制表示形式存储在或字段中。

  • 问题内容: 我要输入电话号码,包括国家代码,分机号 如果tel_number大于15位,可以使用哪种数据类型,最好使用? 例如,如果我有加拿大的国家代码,则可以使用+2或002。哪个更适合处理? 谢谢你的建议。 问题答案: 好吧,我个人不使用数字数据类型来存储电话号码或相关信息。 您如何存储说001234567的数字?最终结果为1234567,丢失了前导零。 当然,您始终可以将其左移,但前提是您确

  • 问题内容: MySql中使用哪种数据结构? 问题答案: 可能很多,但从B树开始。

  • 问题内容: 我正在处理地图数据,并且扩展到了8个小数位。例如: 我在Google文档中看到了 使用: 但是,它们的小数位只能移到6。 我应该使用还是应该考虑使用另一种方法来存储此数据,以便精确。它将与地图计算一起使用。谢谢! 问题答案: DECIMAL是用于精确算术的MySQL数据类型。与FLOAT不同,它的精度对于任何大小的数字都是固定的,因此通过使用它而不是FLOAT,可以在进行某些计算时避免