IPv6-Adresse reicht
Folgenden dieser Beitrag ich bin interessiert an der Suche IPv6-Adressbereiche.
Unter IPv4-ich wäre in der Lage, um zu bestimmen, die start-und end-IP-Adressen durch einen ISP, und mit diesen integer-Werte als Bereich Grenzen schnell Suche eine Datenbank um zu sehen, ob irgendwelche Einträge in der DB fielen in diesen Bereich.
Wie wird dies beeinflusst durch IPv6? Werden die ISP ' s haben noch IPv6-Adressen in Bereiche wie Sie es jetzt tun? Und wie würden Sie bei der effizienten Suche, die diese Bereiche wurden, wenn Sie speichern Sie die IPv6-Adressen als zwei bigint ' s in eine SQL Server-DB?
Der folgende thread wurde vorgeschlagen, durch @vinS als Lösung, um Ihre IPv6-Frage: stackoverflow.com/questions/53497/...
InformationsquelleAutor Guy | 2009-04-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist nicht richtig, IP Adressen zu verwenden (weder IPv4 noch IPv6) reicht. Der richtige Weg, um der Gruppe eine bestimmte "Reihe" von IP-Adressen mit Präfixen (CIDR-notation) oder Masken (veraltet, nur gültig für IPv4 und Wahnsinn entsteht, wenn Sie versuchen, eine nicht-zusammenhängende Maske).
Manchmal werden Sie sehen, dass jemand (manchmal sogar Anwendungen, home-Router, etc) mit IPv4-ranges, aber das ist einfach der falsche Weg, es zu tun.
Mit Classless Inter-Domain Routing - (CIDR -) haben Sie ein Tupel <Address, Prefix>, wo die Adresse ist eine 128-bit-unsigned-integer-und Präfix ist eine winzige (0..128) unsigned integer. Das Präfix gibt an, wie viele most-significant bits der Adresse stellt die Netzwerk-Adresse, so dass die anderen 128-Präfix wenigsten signifikanten bits zur Darstellung eines bestimmten host in diesem Netzwerk.
So, zum Beispiel, eine IPv6 - "Reichweite" von 2620:0:860:2::/64 (wikimedia.org) stellt alle hosts von 2620:0:860:2:: bis zu 2620:0:860:2:FFFF:FFFF:FFFF:FFFF.
Sollten Sie nicht verwenden zwei "bigint"s zu speichern diesen Wert in einer Datenbank, sondern verwenden Sie eine native Darstellung in einer einzelnen Spalte, es sei denn, Sie möchten, dass Ihr Entwickler das Leben ein Alptraum. Wenn Ihr DBMS nicht unterstützt Ganzzahlen, diese großen, neben dem Austausch Ihrer DBMS, schlage ich vor, eine Feste Größe binäre Spalte Daten, 16 bytes lang.
InformationsquelleAutor Juliano
Verwendung eines DBMS mit der richtigen Unterstützung für IPv6-Adressen wäre nicht schlecht
Idee. Hier ist ein Beispiel mit PostgreSQL version 8.3:
InformationsquelleAutor bortzmeyer