IP adressen opslaan in Mysql? Het kan maar dan moet je wel weten wat de bestenmanier is.
Het is niet handig om het IP adres op te slaan als string omdat je daar nietngoed in kan zoeken. Of daar tussen zoeken gaat al niet echt goed (metnbijvoorbeeld IN BETWEEN).
Maar er is een manier waarmee je IP adressen kan opslaan op een manier waar jenwel goed in kan zoeken.
IPv4 adressen zijn 4 bytes lang, dus kan je (UNSIGNED) INT gebruiken dienexact4 bytes zijn:
ipv4 UNSIGNED INT
Gebruik INET ATON en INET NTOA om ze te converteren:
INSERT INTO table (ipv4) VALUES (INET _ATON(“127.0.0.1”));
nSELECT INET_NTOA(ipv4) FROM table;
Voor IPv6 adressen moet je BINARY gebruiken:
ipv6 BINARY(16)
Als je de php manier zoekt om IP adressen te converteren kan je inet pton enninet ntop gebruiken:
‘INSERT INTO table (ipv6) VALUES (“‘.mysql real escape _string(inet_npton(‘2001:4860:a005::68’)).’”)’
n‘SELECT ipv6 FROM table’
n$ipv6 = inet_pton($row[‘ipv6’]);