MySQL関数を利用することによりINET_ATON()
およびINET_NTOA()
先行ゼロのある着信IPv4アドレスを、先行ゼロのない同じ文字列に確実に変換できます。 INET_ATON()
をラップします INET_NTOA()
を使用 IPアドレスを最初に整数値に変換してから、点線のクワッドに戻します。
さまざまな場所に先行ゼロがあるIP:
mysql> SELECT INET_NTOA(INET_ATON('001.110.011.111'));
+-----------------------------------------+
| INET_NTOA(INET_ATON('001.110.011.111')) |
+-----------------------------------------+
| 1.110.11.111 |
+-----------------------------------------+
比較のための先行ゼロなし:
mysql> SELECT INET_NTOA(INET_ATON('1.110.11.111'));
+--------------------------------------+
| INET_NTOA(INET_ATON('1.110.11.111')) |
+--------------------------------------+
| 1.110.11.111 |
+--------------------------------------+
注: これはNULL
を返します 入力IPアドレスが有効なアドレスではなかった場合。元の文字列を返したり、不正なIPアドレスから先行ゼロを削除したりすることはありません:
先行ゼロのある誤ったIPアドレス:
mysql> SELECT INET_NTOA(INET_ATON('888.777.123.123'));
+-----------------------------------------+
| INET_NTOA(INET_ATON('888.007.123.123')) |
+-----------------------------------------+
| NULL |
+-----------------------------------------+