Využitím funkcí MySQL INET_ATON()
a INET_NTOA()
můžete spolehlivě převést příchozí IPv4 adresu, která má úvodní nuly, na stejný řetězec bez úvodních nul. Zabalte INET_ATON()
pomocí INET_NTOA()
převést IP adresu nejprve na její celočíselnou hodnotu a poté zpět na tečkovanou čtveřici.
IP s úvodními nulami na různých místech:
mysql> SELECT INET_NTOA(INET_ATON('001.110.011.111'));
+-----------------------------------------+
| INET_NTOA(INET_ATON('001.110.011.111')) |
+-----------------------------------------+
| 1.110.11.111 |
+-----------------------------------------+
A bez úvodních nul pro srovnání:
mysql> SELECT INET_NTOA(INET_ATON('1.110.11.111'));
+--------------------------------------+
| INET_NTOA(INET_ATON('1.110.11.111')) |
+--------------------------------------+
| 1.110.11.111 |
+--------------------------------------+
Poznámka: To vrátí NULL
pokud vstupní IP adresa nebyla platná adresa. Nevrací původní řetězec ani neodstraňuje úvodní nuly ze špatné IP adresy:
Vadná IP adresa s úvodními nulami:
mysql> SELECT INET_NTOA(INET_ATON('888.777.123.123'));
+-----------------------------------------+
| INET_NTOA(INET_ATON('888.007.123.123')) |
+-----------------------------------------+
| NULL |
+-----------------------------------------+