在 MySQL 中使用哪種資料型別來儲存 IP 地址?
我們可以藉助無符號 INT 來儲存 IP 地址。在使用 INSERT 時,包含 INET_ATON(),在使用 SELECT 時,包含 INET_NTOA()。IP 地址為點分格式。
讓我們看一個示例。
建立表。
mysql> create table IPV4AddressDemo -> ( -> `IPV4Address` INT UNSIGNED -> ); Query OK, 0 rows affected (0.52 sec)
使用 INET_ATON() 向表中插入 IP 地址。
mysql> insert into IPV4AddressDemo values(INET_ATON("120.0.0.1")); Query OK, 1 row affected (0.17 sec)
顯示所有記錄。
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)
廣告