Ich versuche festzustellen, ob eine IP-Adresse routingfähig ist. Zum Beispiel, wenn ich 127.0.0.1 erhalte, weiß ich, dass dies Loopback ist (zB: localhost). Ich konnte keine Funktion dafür in .NET oder einer anderen Sprache finden, also habe ich angefangen, meine eigene zu schreiben, die bei weitem nicht vollständig ist.
Bevor ich viel Zeit mit dem Schreiben dieser Funktion verbringe, weiß jemand, ob eine Funktion existiert, die bestimmt, ob eine IP-Adresse nicht routingfähig ist? Ich würde eine .NET-Lösung bevorzugen, aber Anfänger können nicht wählerisch sein und ich werde jede Lösung gerne konvertieren.
EDIT: Beantwortete meine Frage mit einer Funktion.
Ich habe meine eigene Frage beantwortet, indem ich eine Funktion erstellt habe, die überprüft, ob eine IP-Adresse (ipv4 oder ipv6) eine nicht routingfähige IP-Adresse ist. Ich habe den Wiki-Artikel aus McKays Beitrag referenziert, um eine Menge reservierter IP-Adressen zu finden ( Ссылка )
Lösung:
%Vor%Ob etwas "routingfähig" ist oder nicht, wird auf lokaler Implementierung basieren. In manchen Fällen (z. B. basierend auf der aktuellen Subnetzmaske) sind bestimmte Adressen routingfähig, andere nicht.
Zuerst würde ich empfehlen, die Klasse System.Net.IPAddress zu verwenden:
Sehen Sie sich auch den Artikel mit dem geschützten IP-Code in Wikipedia an.
Es gibt keine andere Lösung, die ich finden kann, aber Sie haben es im Grunde genommen: Es wäre besser, die Bytes zu überprüfen (die IP als Byte [4] zu erhalten) als als String, aber es gibt wenig mehr . Denken Sie daran, dass Klasse B 172.16.0.0/12 ist; wieder ist es einfacher, dies mit einem Byte-Wert zu überprüfen, da Sie für die ersten vier Bits des zweiten Bytes eine Bitmaske verwenden können.
Tags und Links .net c# ip-address