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

Chuyển đổi địa chỉ IP từ VARCHAR sang INTEGER trong MySQL với INET_ATON

Tạo bảng IP

mysql> CREATE TABLE DemoTable1404 (IpAddress VARCHAR(40));
INSERT INTO DemoTable1404 VALUES
('192.168.120.0'),('192.168.120.20'),('224.0.0.0');

Dữ liệu

mysql> SELECT * FROM DemoTable1404;
+----------------+
| IpAddress      |
+----------------+
| 192.168.120.0  |
| 192.168.120.20 |
| 224.0.0.0      |
+----------------+

Truy vấn: INET_ATON chuyển IP sang số nguyên

mysql> SELECT INET_ATON(IpAddress) FROM DemoTable1404;

Kết quả

+----------------------+
| INET_ATON(IpAddress) |
+----------------------+
| 3232266240           |
| 3232266260           |
| 3758096384           |
+----------------------+

Kiểm tra ngược: INET_NTOA

mysql> SELECT INET_NTOA('3232266240');
+-------------------------+
| INET_NTOA('3232266240') |
+-------------------------+
| 192.168.120.0           |
+-------------------------+

Ứng dụng: Lưu IP dưới dạng INT UNSIGNED (4 bytes) tiết kiệm không gian, dễ dàng so sánh phạm vi (range query) với BETWEEN. INET_ATON trả về NULL nếu IP không hợp lệ.