Validierung einer IP-Adresse (mit Maske)

8

Ich habe IP-Adressen und eine Maske wie 10.1.1.1/32 . Ich würde gerne überprüfen, ob 10.1.1.1 in diesem Bereich ist. Gibt es eine Bibliothek oder ein Dienstprogramm, die das tun oder muss ich selbst etwas schreiben?

    
Josh K 17.11.2010, 22:21
quelle

4 Antworten

25

Zuerst möchten Sie Ihre IP-Adressen in die Ebene int s konvertieren, mit der Sie leichter arbeiten können:

%Vor%

Sobald Sie Ihre IP-Adressen als einfache int s haben, können Sie einige Bit-Arithmetik durchführen, um die Überprüfung durchzuführen:

%Vor%     
John Kugelman 17.11.2010, 22:42
quelle
3
%Vor%     
Sri Ram 07.05.2012 14:58
quelle
3

Hier ist eine Version, die Subnetzbeschreibungen auf verschiedene Arten verwendet, einschließlich IPv6 .

Basierend auf dem anderen hier veröffentlichten Code. Bei IPv4 -Adressen funktioniert es möglicherweise langsamer als bei der Ausführung von binären Operationen auf bare int .

%Vor%     
Carsten 06.08.2014 16:52
quelle
1

Dank John Kugelman - ich habe seine Code-Schnipsel verwendet, um diese Klasse zu erstellen.

%Vor%

Ich musste der int-Umwandlung in seinem Code eine Maske hinzufügen:

%Vor%

Produziert:

%Vor%

Auf meinem System:

%Vor%

Sie können die Haupt- und Testmethoden aus der obigen Klasse entfernen. Sie werden aus dem Einheitentestcode angepasst und hier zur Vereinfachung hinzugefügt.

    
Scott Plante 22.08.2011 19:28
quelle

Tags und Links