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

标签 mysql sql ip-address

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

SELECT * FROM logins WHERE ip = '1.2.3.4'

其中 ip 是 VARCHAR(15) 字段。

有没有更好的方法来做到这一点?

最佳答案

对于 IPv4 addresses ,您可能希望将它们存储为 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)

关于mysql - 在 MySQL 中存储 IP 地址的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2542011/

相关文章:

php - 在本地数据库中存储 Amazon API 数据

sql - 如何使用powershell执行.sql文件?

c# - 将 mysql.data 引用添加到 VS2010

php - 喜欢 phpacademy 的按钮

c - 哪个函数告诉我内核将本地套接字绑定(bind)到哪个地址?

logging - 如何 grep 服务器访问日志以查找唯一 IP 和特定页面?

php - MySQL + PHP - 根据先前的选择结果选择信息

php - 您的 SQL 语法有误 - PHP

javascript - 将验证集成到 jQuery 函数中

mysql - Sql 查询花费太多时间