哪种MySQL数据类型用于存储IP地址?

我们可以借助INT unsigned存储IP地址。在使用INSERT时,包括INET_ATON(),在SELECT中,包括INET_NTOA()。IP地址为点分格式。

让我们来看一个例子。

创建一个表。

mysql> create table IPV4AddressDemo
   -> (
   -> `IPV4Address` INT UNSIGNED
   -> );

使用INET_ATON将IP地址插入表中。

mysql> insert into IPV4AddressDemo values(INET_ATON("120.0.0.1"));

显示所有记录。

mysql> select *from IPV4AddressDemo;

以下是输出,但绝对希望我们使用IP地址格式。

+-------------+
| IPV4Address |
+-------------+
|  2013265921 |
+-------------+
1 row in set (0.00 sec)

由于上面的输出给出了一个整数序列,但是我们可以将它们转换为原始IP地址格式。为此,请使用INET_NTOA

mysql> SELECT INET_NTOA(`IPV4Address`) FROM IPV4AddressDemo;

以下是以实际格式显示IP地址的输出。

+--------------------------+
| INET_NTOA(`IPV4Address`) |
+--------------------------+
| 120.0.0.1                |
+--------------------------+
1 row in set (0.00 sec)