小编典典

我应该为MySQL存储哪种类型的IP地址?

mysql

我打算使用varchar(20),但是我想知道如果我应该做INT并剥离句点怎么办。哪个会更好,为什么呢?


阅读 328

收藏
2020-05-17

共1个答案

小编典典

我想您只对IPv4地址感兴趣,而对IPv6不感兴趣。

我会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)
2020-05-17