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

在MySQL中存储IP地址的最有效方法

郑嘉悦
2023-03-14
问题内容

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

在SQL Server中存储IP地址的数据类型 (10个答案)

3年前关闭。

在MySQL中存储和检索IP地址的最有效方法是什么?现在我正在做:

SELECT * FROM logins WHERE ip = '1.2.3.4'

其中ip是一个VARCHAR(15)字段。

有一个更好的方法吗?


问题答案:

对于IPv4地址,您可能需要将其存储为,int unsigned并使用INET_ATON()INET_NTOA()函数从其数字值返回IP地址,反之亦然。

例:

SELECT INET_ATON('127.0.0.1');

+------------------------+
| INET_ATON('127.0.0.1') |
+------------------------+
|             2130706433 | 
+------------------------+
1 row in set (0.00 sec)


SELECT INET_NTOA('2130706433');

+-------------------------+
| INET_NTOA('2130706433') |
+-------------------------+
| 127.0.0.1               | 
+-------------------------+
1 row in set (0.02 sec)


 类似资料:
  • 问题内容: 我正在用Golang开发网络应用程序。我有一个IP地址。每当出现请求时,我都会使用它来查找返回IP地址的主机IP地址。比较这些的最佳方法是什么? 顺便说一下,在Python中,我们有一个数据结构,使得上述问题很容易解决,但是Go呢? 问题答案: 带“套” 建立我们的集合 Go中没有内置类型,但是您可以优雅地使用a 作为集合,例如: 注意:我们利用了以下事实:如果键不在映射中,则对映射建

  • 问题内容: 正如“具有ipv6功能的inet_aton和inet_ntoa功能所需 ”中所要求的那样,当前没有用于存储IPv6地址的MySQL函数。建议用于存储/插入的数据类型/功能是什么?(我不打算将它们存储为字符串)。我也不想将IPv6地址分为2个INT。 问题答案: 怎么样: 那应该足够有效。 如该错误报告中所述,当前在MySQL服务器中没有将文本IPv6地址从二进制转换为二进制的功能。您需

  • 问题内容: 这个问题已经在这里有了答案 : 在Oracle中表示IPv4 / IPv6地址 (7个答案) 8年前关闭。 我创建了一个表来存储IP地址。 但是当我尝试插入表中时,它给了我一个错误: 无论如何,我可以在SQL表中存储一个带有很多小数位的数字,如果是的话,我应该使用什么数据类型?请指教。 提前致谢! 问题答案: 您有几种选择: 将其存储为VARCHAR。IP地址实际上不是您可能会做数学运

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

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

  • 问题内容: 在MySQL数据库中存储IP地址的最佳字段类型和长度是什么? IPv6呢? 问题答案: 将IP存储为,然后使用和功能存储/检索IP地址。 样例代码: