sql >> Database >  >> RDS >> Mysql

IPv6-adressen opslaan in MySQL

Wat dacht je van:

BINARY(16)

Dat zou effectief genoeg moeten zijn.

Momenteel is er geen functie om tekstuele IPv6-adressen van/naar binair te converteren in de MySQL-server, zoals vermeld in dat bugrapport. Je moet het ofwel in je applicatie doen of eventueel een UDF (User-Defined Function) maken in de MySQL-server om dat te doen.

UPDATE:

MySQL 5.6.3 heeft ondersteuning voor IPv6-adressen, zie het volgende:"INET6_ATON(expr) ".

Het gegevenstype is VARBINARY(16) in plaats van BINARY(16) zoals ik eerder suggereerde. De enige reden hiervoor is dat de MySQL-functies werken voor zowel IPv6- als IPv4-adressen. BINARY(16) is prima voor het opslaan van alleen IPv6-adressen en bespaart één byte. VARBINARY(16) moet worden gebruikt bij het verwerken van zowel IPv6- als IPv4-adressen.

Een implementatie voor oudere versies van MySQL en MariaDB, zie het volgende:"MISQL 5 UITBREIDEN MET IPV6-FUNCTIES ".



  1. Methoden voor het instellen van NLS-parameters en hun prioriteiten (Oracle Database)

  2. Hoe HTML-tags van een tekenreeks in SQL Server te verwijderen?

  3. Aangrenzend blok met records selecteren in mysql

  4. Heeft Mysql een equivalent van @@ROWCOUNT zoals in mssql?