sql >> Database >  >> RDS >> Mysql

Welk MySQL-gegevenstype moet worden gebruikt voor een IP-adres?

Aangezien IPv4-adressen 4 bytes lang zijn, kunt u een INT (ONGETEKEND ) die precies 4 bytes heeft:

`ipv4` INT UNSIGNED

En INET_ATON en INET_NTOA om ze te converteren:

INSERT INTO `table` (`ipv4`) VALUES (INET_ATON("127.0.0.1"));
SELECT INET_NTOA(`ipv4`) FROM `table`;

Voor IPv6-adressen kunt u een BINARY in plaats daarvan:

`ipv6` BINARY(16)

En gebruik PHP's inet_pton en inet_ntop voor conversie:

'INSERT INTO `table` (`ipv6`) VALUES ("'.mysqli_real_escape_string(inet_pton('2001:4860:a005::68')).'")'
'SELECT `ipv6` FROM `table`'
$ipv6 = inet_pton($row['ipv6']);


  1. PostgreSQL migreren naar de cloud - oplossingen van Amazon, Google en Microsoft vergelijken

  2. Invoegen als rij niet bestaat (UPSERT) in MySQL

  3. Selecteer N-de rij uit een tabel in Oracle

  4. Lijst met alle index- en indexkolommen in SQL Server DB