addr.py
author Tero Marttila <terom@fixme.fi>
Sun, 12 Jul 2009 00:43:36 +0300
changeset 6 57e8168ba8c4
parent 4 8b633782f02d
permissions -rw-r--r--
use FQDN for zone hosts
"""
    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