Die Methode zum Konvertieren der Netzmaske von der Punkt-Dezimal-Notation (ABCD) in die CIDR-Notation lautet Früher veröffentlicht, muss jedoch umgekehrt konvertiert werden. Ich wurde von gedrückt, also schrieb ich es.
Beachten Sie, dass keine Fehlerverarbeitung durchgeführt wird. Wenn Sie also eine seltsame Netzmaske übergeben, wird ein seltsamer Wert zurückgegeben. Bitte seien Sie vorsichtig.
import socket
import struct
def mask2cidr(mask):
"""Convert netmask from Dotted address to CIDR."""
return bin(struct.unpack('!L', socket.inet_pton(socket.AF_INET, mask))[0])[2:].index('0')
>>> mask2cidr('255.255.255.0')
24
>>> mask2cidr('255.255.240.0')
20
>>> mask2cidr('255.255.255.192')
26
Recommended Posts