pvl/config/addr.py
changeset 7 0f9cae2d7147
parent 4 8b633782f02d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pvl/config/addr.py	Sun Jul 12 00:51:08 2009 +0300
@@ -0,0 +1,60 @@
+"""
+    Used to define IP-address/subnet stuff
+"""
+
+import IPy
+
+class IP (IPy.IP, object) :
+    """
+        A literal IPv4 address
+    """
+    
+    def __init__ (self, address) :
+        """
+            Parse the given literal IP address in "a.b.c.d" form
+        """
+    
+        super(IP, self).__init__(address)
+    
+    def is_v4 (self) :
+        """
+            Returns True if the address is an IPv4 address
+        """
+
+        return self.version() == 4
+
+    def is_v6 (self) :
+        """
+            Returns True if the address is an IPv6 address
+        """
+
+        return self.version() == 6
+
+class Network (IPy.IP, object) :
+    """
+        An IPv4 network (subnet)
+    """
+
+    def __init__ (self, prefix) :
+        """
+            Parse the given prefix in "a.b.c.d/l" form
+        """
+
+        super(Network, self).__init__(prefix)
+
+class MAC (object) :
+    """
+        A mac address
+    """
+
+    def __init__ (self, mac) :
+        """
+            Parse the given MAC address in "aa:bb:cc:dd:ee:ff" form
+        """
+
+        # XXX: validate
+        self.mac = mac
+
+    def __str__ (self) :
+        return self.mac
+