一尘不染

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

mysql

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

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

3年前关闭。

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

SELECT * FROM logins WHERE ip = '1.2.3.4'

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

有一个更好的方法吗?


阅读 324

收藏
2020-05-17

共1个答案

一尘不染

对于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)
2020-05-17