Korzystając z funkcji MySQL INET_ATON()
i INET_NTOA()
możesz niezawodnie przekonwertować przychodzący adres IPv4, który ma wiodące zera na ten sam ciąg bez wiodących zer. Zawijaj INET_ATON()
z INET_NTOA()
aby przekonwertować adres IP najpierw na wartość całkowitą, a następnie z powrotem na kropkowaną czwórkę.
IP z wiodącymi zerami w różnych miejscach:
mysql> SELECT INET_NTOA(INET_ATON('001.110.011.111'));
+-----------------------------------------+
| INET_NTOA(INET_ATON('001.110.011.111')) |
+-----------------------------------------+
| 1.110.11.111 |
+-----------------------------------------+
I bez wiodących zer dla porównania:
mysql> SELECT INET_NTOA(INET_ATON('1.110.11.111'));
+--------------------------------------+
| INET_NTOA(INET_ATON('1.110.11.111')) |
+--------------------------------------+
| 1.110.11.111 |
+--------------------------------------+
Uwaga: To zwróci NULL
jeśli wprowadzony adres IP nie był prawidłowym adresem. Nie zwróci oryginalnego ciągu znaków ani nie usunie wiodących zer ze złego adresu IP:
Wadliwy adres IP z wiodącymi zerami:
mysql> SELECT INET_NTOA(INET_ATON('888.777.123.123'));
+-----------------------------------------+
| INET_NTOA(INET_ATON('888.007.123.123')) |
+-----------------------------------------+
| NULL |
+-----------------------------------------+