How can I convert a CIDR prefix to a dotted-quad netmask in Python?
For example, if the prefix is 12 I need to return 255.240.0.0.
How can I convert a CIDR prefix to a dotted-quad netmask in Python?
For example, if the prefix is 12 I need to return 255.240.0.0.
You can do it like this:
def cidr(prefix): return socket.inet_ntoa(struct.pack(">I", (0xffffffff << (32 - prefix)) & 0xffffffff)) Here is a solution on the lighter side (no module dependencies):
netmask = '.'.join([str((0xffffffff << (32 - len) >> i) & 0xff) for i in [24, 16, 8, 0]])