Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Speichern von IPv6-Adressen in MySQL

Wie wäre es mit:

BINARY(16)

Das sollte effektiv genug sein.

Derzeit gibt es keine Funktion zum Konvertieren von textuellen IPv6-Adressen von/in binäre im MySQL-Server, wie in diesem Fehlerbericht erwähnt. Sie müssen dies entweder in Ihrer Anwendung tun oder möglicherweise eine UDF (User-Defined Function) auf dem MySQL-Server erstellen, um dies zu tun.

AKTUALISIERUNG:

MySQL 5.6.3 unterstützt IPv6-Adressen, siehe Folgendes:„INET6_ATON(expr) ".

Der Datentyp ist VARBINARY(16) statt BINARY(16) wie ich vorhin vorgeschlagen habe. Der einzige Grund dafür ist, dass die MySQL-Funktionen sowohl für IPv6- als auch für IPv4-Adressen funktionieren. BINARY(16) ist in Ordnung, um nur IPv6-Adressen zu speichern, und spart ein Byte. VARBINARY(16) sollte verwendet werden, wenn sowohl IPv6- als auch IPv4-Adressen verarbeitet werden.

Eine Implementierung für ältere Versionen von MySQL und MariaDB finden Sie unter:"MYSQL 5 MIT IPV6-FUNKTIONEN ERWEITERN ".