Utilizando as funções do MySQL
INET_ATON()
e INET_NTOA()
você pode converter de forma confiável um endereço IPv4 de entrada que tenha zeros à esquerda na mesma string sem zeros à esquerda. Agrupar INET_ATON()
com INET_NTOA()
para converter o endereço IP primeiro em seu valor inteiro e, em seguida, de volta para um quadrado pontilhado. IP com zeros à esquerda em vários lugares:
mysql> SELECT INET_NTOA(INET_ATON('001.110.011.111'));
+-----------------------------------------+
| INET_NTOA(INET_ATON('001.110.011.111')) |
+-----------------------------------------+
| 1.110.11.111 |
+-----------------------------------------+
E sem zeros à esquerda para comparação:
mysql> SELECT INET_NTOA(INET_ATON('1.110.11.111'));
+--------------------------------------+
| INET_NTOA(INET_ATON('1.110.11.111')) |
+--------------------------------------+
| 1.110.11.111 |
+--------------------------------------+
Observação: Isso retornará
NULL
se o endereço IP de entrada não for um endereço válido. Ele não retornará a string original ou removerá zeros à esquerda de um endereço IP incorreto:Endereço IP defeituoso com zeros à esquerda:
mysql> SELECT INET_NTOA(INET_ATON('888.777.123.123'));
+-----------------------------------------+
| INET_NTOA(INET_ATON('888.007.123.123')) |
+-----------------------------------------+
| NULL |
+-----------------------------------------+