Mysql
 sql >> база данни >  >> RDS >> Mysql

Кой тип данни на MySQL да използвате за IP адрес?

Тъй като IPv4 адресите са дълги 4 байта, можете да използвате INT (НЕПОДПИСАНО ) който има точно 4 байта:

`ipv4` INT UNSIGNED

И INET_ATON и INET_NTOA за да ги конвертирате:

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

За IPv6 адреси можете да използвате BINARY вместо това:

`ipv6` BINARY(16)

И използвайте PHP на inet_pton и inet_ntop за преобразуване:

'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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да направите броене на заявка за съюз

  2. Как да изберете записи от тази връзка?

  3. Подобряване на производителността на MySQL с разширени настройки на InnoDB

  4. Left Join превъзхожда Inner Join?

  5. Стартирайте localhost на mac OS X Yosemite