Wie bestimmen Sie die Gleichheit zwischen zwei IPv6 Adressen?

Ich habe eine Anwendung, mit der Administratoren geben Sie gültige IP-Adressen aus dem web-service-Anfragen können gestellt werden. Ich nehme einfach die konfigurierte IP-Adressen, und vergleichen Sie Sie gegen die eingehende Anforderung. Vergleich der zwei IPv4-Adressen ist trivial und ich dachte, zwischen zwei IPv6-Adressen, wie gut.

Aber, meine Vernetzung Unwissenheit zu zeigen begann, als ich merkte, dass IPv6-Adressen sind ein wenig komplexer. Eine Frage, die ich bemerkt ist, dass, wenn ich Blick auf die IP-Adresse der Maschine (war das anzeigen, was die VMWare-Konsole zeigte die IP-Adresse) und die IP-Adresse von der web-Anfrage (HttpContext.Current.Request.UserHostAddress innerhalb .NET), bemerkte ich, dass einer von Ihnen endete in %10 und ein anderes in %11:

  • ipconfig zeigt: fe80:8179:5576:c6d0:8b16%11
  • UserHostAddress zeigt: fe80::8179:5576:c6d0:8b16%10

Ist der einzige Unterschied %10 und %11 - was bedeutet das?

Habe ich auch gesehen IPv6-Adressen enden in "/" gefolgt von 2 Ziffern. Sollte ich diese einfach ignorieren letzten 3 Ziffern (wenn Sie vorhanden ist), als einen Vergleich zu tun? Wenn ja, was sind die gültige Alternative enden, die ich brauche zu suchen?

----------- BEARBEITEN -------------

Hier ist meine Lösung, basierend auf der Antwort des...

Ich einfach speichern eine "gescheuert" IP-Adresse, und vergleichen Sie, dass mit einem "geschrubbt" IP-Adresse. Mit .NET hier ist, wie ich Peeling eine IP-Adresse. Nicht das beste vom performance-Standpunkt aus, aber es funktioniert. Ich würde eher nur ein Vergleich der GetAddressBytes() aber ich bin mit einem Dictionary und ich entschied mich gegen den extra Schritt bei der Erstellung meiner eigenen ByteComparer.

IPAddress incomingIp = null;
bool ipAddressParsePassed = IPAddress.TryParse(userHostAddress, out incomingIp);
if (ipAddressParsePassed)
{
    IPAddress scrubbedIp = new IPAddress(incomingIp.GetAddressBytes());
    string scrubbedIpStr = scrubbedIp.ToString()
}
InformationsquelleAutor Kirk Liemohn | 2009-11-24
Schreibe einen Kommentar