34 Stimmen

Wie speichert man IPv6-kompatible Adressen in einer relationalen Datenbank?

Wie kann ich das tun?

Im Moment wird IPv6 noch nicht verwendet, aber ich muss die Anwendung so gestalten, dass sie IPv6-fähig wird. Es ist notwendig, IP-Adressen und CIDR-Blöcke (auch BGP NLRI, aber das ist eine andere Geschichte) in einer MySQL-Datenbank zu speichern. Ich habe immer ein INT für IPv4 + ein TINYINT für masklen verwendet, aber IPv6 ist 128 Bit.

Welcher Ansatz ist dafür am besten geeignet? 2xBIGINT ? CHAR(16) für die binäre Speicherung? CHAR(39) für die Speicherung von Text? 8xSMALLINT in einer eigenen Tabelle?

Was würden Sie empfehlen?

1voto

hgl Punkte 11

Ich arbeite an einem Projekt zum Abgleich der längsten Präfixe, daher teile ich die Adresse in 4 Ganzzahlen für IPv4-Adressen auf. Das funktioniert gut. Ich würde das auf IPv6-Adressen ausweiten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X