terom@0: """ terom@0: Used to define IP-address/subnet stuff terom@0: """ terom@0: terom@0: import IPy terom@0: terom@0: class IP (IPy.IP, object) : terom@0: """ terom@0: A literal IPv4 address terom@0: """ terom@0: terom@0: def __init__ (self, address) : terom@0: """ terom@0: Parse the given literal IP address in "a.b.c.d" form terom@0: """ terom@0: terom@0: super(IP, self).__init__(address) terom@4: terom@4: def is_v4 (self) : terom@4: """ terom@4: Returns True if the address is an IPv4 address terom@4: """ terom@4: terom@4: return self.version() == 4 terom@4: terom@4: def is_v6 (self) : terom@4: """ terom@4: Returns True if the address is an IPv6 address terom@4: """ terom@4: terom@4: return self.version() == 6 terom@0: terom@0: class Network (IPy.IP, object) : terom@0: """ terom@0: An IPv4 network (subnet) terom@0: """ terom@0: terom@0: def __init__ (self, prefix) : terom@0: """ terom@0: Parse the given prefix in "a.b.c.d/l" form terom@0: """ terom@0: terom@0: super(Network, self).__init__(prefix) terom@0: terom@1: class MAC (object) : terom@1: """ terom@1: A mac address terom@1: """ terom@1: terom@1: def __init__ (self, mac) : terom@1: """ terom@1: Parse the given MAC address in "aa:bb:cc:dd:ee:ff" form terom@1: """ terom@1: terom@1: # XXX: validate terom@1: self.mac = mac terom@1: terom@1: def __str__ (self) : terom@1: return self.mac terom@1: