2017-03-01 1 views
1

Hier ist die IPV6-Adresse in einer Tabelle in SQL-Datenbank zu vergleichen, ich diese zwei IPV6-Adressen Von Bereich vergleichen will: 2002: 4559: 1FE2: 4559: 1FE2: 21E3: F3E3: 0051
zur Reichweite: 2002: 4559: 1FE2: 4559: 1FE2: 21E3: F3E3: 0055
benötigen diese Adressen zu vergleichen und dann die aktualisiert Adresse an den Von Bereichsadresse in dieser table.Please HilfeWie IPV6-Adresse in SQL

+0

gibt es andere Möglichkeiten als diese beiden? In der Zukunft? Oder nur zwei Adressen, um diesen Bereich zu machen? – Whencesoever

Antwort

1
reichen

Wenn Sie MySQL> 5.6.3 verwenden, können Sie die Zeichenfolge INET6_ATON in eine VARBINARY(16) konvertieren und diese für eine Bereichsüberprüfung verwenden? Ein lexikografischer Stringvergleich könnte auch für Sie funktionieren, wenn diese Adressen alle einheitlich gespeichert sind.

Siehe auch Storing IPv6 Addresses in MySQL

+0

Vielen Dank für die Antwort, aber ich habe Sie nicht Sir, COuld Sie PLZ schreiben Sie stattdessen eine Frage –

0

Berechnet eine MD5-128-Bit-Prüfsumme für die beiden Bereiche und die Prüfsumme anstatt die Bereiche vergleichen. Der Wert (Prüfsumme) wird als Zeichenfolge mit 32 Hexadezimalziffern oder NULL zurückgegeben, wenn das Argument NULL war.

Beispielabfrage:

UPDATE Table T1 
SET T1.To_Range = T1.From_Range 
WHERE MD5(T1.From_Range) != MD5(T1.To_Range) 
+0

Vergleicht dieses MD5 die IPV6-Adressen? –

+0

Ich bekomme einen Fehler wie MD5 ungültiger Bezeichner –

+0

welche Datenbank benutzen Sie? – narendra