Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Kiểu dữ liệu MySQL nào dùng để lưu địa chỉ IP?


Dùng INT UNSIGNED. Khi INSERT dùng INET_ATON(), khi SELECT dùng INET_NTOA(). IP ở định dạng dotted (ví dụ: 120.0.0.1).

Tạo bảng

mysql> CREATE TABLE IPV4AddressDemo (
    -> `IPV4Address` INT UNSIGNED
    -> );
Query OK, 0 rows affected (0.52 sec)

Chèn IP với INET_ATON

mysql> INSERT INTO IPV4AddressDemo VALUES(INET_ATON("120.0.0.1"));
Query OK, 1 row affected (0.17 sec)

Hiển thị (dạng số nguyên)

mysql> SELECT * FROM IPV4AddressDemo;
+-------------+
| IPV4Address |
+-------------+
| 2013265921  |
+-------------+
1 row in set (0.00 sec)

Chuyển về định dạng IP với INET_NTOA

mysql> SELECT INET_NTOA(`IPV4Address`) FROM IPV4AddressDemo;
+--------------------------+
| INET_NTOA(`IPV4Address`) |
+--------------------------+
| 120.0.0.1                |
+--------------------------+
1 row in set (0.00 sec)

Lưu ý: Chỉ áp dụng cho IPv4. IPv6 cần VARBINARY(16) và INET6_ATON/INET6_NTOA.