我应该为MySQL存储什么类型的IP地址?

Str*_*rry 11 mysql

我打算使用varchar(20),但我想知道如果我应该做INT并取消期间应该怎么做.什么会更好,为什么?

小智 18

我认为你只对IPv4地址感兴趣,而不是IPv6.

我会使用a INT UNSIGNED作为列,然后使用INET_ATONINET_NTOA在文本表示和int值之间来回转换.

mysql> SELECT INET_ATON('192.168.10.50');
+----------------------------+
| INET_ATON('192.168.10.50') |
+----------------------------+
|                 3232238130 |
+----------------------------+
1 row in set (0.00 sec)

mysql> SELECT INET_NTOA(3232238130);
+-----------------------+
| INET_NTOA(3232238130) |
+-----------------------+
| 192.168.10.50         |
+-----------------------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)