Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

SQL:Binary to IP Address

mysql> select inet_ntoa(conv('4333d26e', 16, 10));
+-------------------------------------+
| inet_ntoa(conv('4333d26e', 16, 10)) |
+-------------------------------------+
| 67.51.210.110                       |
+-------------------------------------+
1 row in set (0.00 sec)

Kiểm tra xem nó có hoạt động ở đó không =)

Chỉnh sửa

Vấn đề là inet_ntoa dường như phân tích cú pháp từ thập phân strings đại diện số, không phải số thập lục phân hoặc từ số nguyên integers . So sánh:

mysql> select inet_ntoa(0x4333d26e);
+-----------------------+
| inet_ntoa(0x4333d26e) |
+-----------------------+
| 67.51.210.110         |
+-----------------------+
1 row in set (0.02 sec)

mysql> select inet_ntoa('0x4333d26e');
+-------------------------+
| inet_ntoa('0x4333d26e') |
+-------------------------+
| 0.0.0.0                 |
+-------------------------+
1 row in set, 1 warning (0.00 sec)

Chỉnh sửa

Điều này đơn giản hơn và dường như cũng hoạt động:

SELECT INET_NTOA(CONV(ip_bin, 2, 10)) FROM log_metadata


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách sử dụng khối try-catch cho PDO

  2. Android không kết nối được với cơ sở dữ liệu MySQL đúng cách

  3. Lưu trữ hình ảnh trong hệ thống tệp và sử dụng mysql để lập chỉ mục

  4. Sự khác biệt giữa các ngày trong hai hàng liên tiếp

  5. Các chỉ mục có tăng tốc độ hơn> so sánh trong MySQL không?