sql >> Database teknologi >  >> RDS >> Mysql

Hvilken MySQL-datatype skal bruges til en IP-adresse?

Da IPv4-adresser er 4 byte lange, kan du bruge en INT (UNSIGNED ) der har præcis 4 bytes:

`ipv4` INT UNSIGNED

Og INET_ATON og INET_NTOA for at konvertere dem:

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

Til IPv6-adresser kan du bruge en BINÆR i stedet:

`ipv6` BINARY(16)

Og brug PHP's inet_pton og inet_ntop til konvertering:

'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. Opdater C#-klienten hver gang databasen opdateres

  2. Retter PHP PEAR-fejl

  3. Hurtigste måde at gentage en stor tabel ved hjælp af JDBC

  4. Hvordan vælger man hurtigt 3 tilfældige poster fra en 30k MySQL-tabel med et where-filter efter en enkelt forespørgsel?