2017-09-20 1 views
1

meiner lokalen Lassen Sie sagen, ip ist 10.212.97.23 und meine Subnet Mask ist 255.255.254.0Befund IP-Bereich über Subnetz-Maske

Laut dass, ich bin im selben Subnetz mit 10.212.96.* und CIDR 10.212.96.0/23

wäre also mein Frage ist: Gibt es eine Python-Bibliothek, die lokale IP und Subnetzmaske und berechnet den CIDR-Wert? Ich habe NETADDR Bibliothek konnte aber diese Funktionalität nicht finden

Antwort

0

Die Grundzahl in CIDR kann manuell die folgende Funktion berechnet werden, ohne Bibliotheken:

>>> netmask = "255.255.254.0" 
>>> sum([bin(int(x)).count("1") for x in netmask.split(".")]) 
23 

Lassen Sie mich wissen, ob es hilfreich ist.

+1

Vielen Dank für die Antwort. Also, zum Beispiel, wenn ich "/ 23" string zu meiner lokalen IP hinzufüge, wird es "10.212.97.23/23" sein, bezieht es sich auf denselben IP-Bereich mit "10.212.96.0/23"? –

+0

Sie sollten im gleichen IP-Bereich sein. –

0

Wenn Sie es mit einem Modul tun möchten, können das ipaddress Modul helfen:

❯ python3 
>>> import ipaddress 
>>> ipaddress.IPv4Network("10.212.97.23/255.255.254.0", strict=False).prefixlen 
23 

Docs here.