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)
जांचें कि क्या यह वहां भी काम करता है =)
संपादित करें
समस्या यह है कि inet_ntoa
दशमलव . से पार्स करने लगता है strings
संख्या प्रतिनिधित्व, हेक्साडेसिमल वाले नहीं, या हेक्साडेसिमल integers
. से . तुलना करें:
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)
संपादित करें
यह आसान है और काम करने लगता है:
SELECT INET_NTOA(CONV(ip_bin, 2, 10)) FROM log_metadata