sql >> Databáze >  >> RDS >> Mysql

Jaký datový typ MySQL použít pro IP adresu?

Protože adresy IPv4 jsou dlouhé 4 bajty, můžete použít INT (NESIGNOVANÉ ) který má přesně 4 bajty:

`ipv4` INT UNSIGNED

A INET_ATON a INET_NTOA pro jejich převod:

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

Pro adresy IPv6 můžete použít BINARY místo toho:

`ipv6` BINARY(16)

A použijte PHP inet_pton a inet_ntop pro konverzi:

'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. Funkce NLS_COLLATION_NAME() v Oracle

  2. Vytvořte dočasnou tabulku s daty

  3. Jak najít tabulku, kde jsou uzamčeny statistiky

  4. Úrovně izolace SQL serveru:Řada A