'Args:
address: A string or integer representing the IP
\'192.168.1.1\'
Additionally, an integer can be passed, so
IPv4Address(\'192.168.1.1\') == IPv4Address(3232235777).
or, more generally
IPv4Address(int(IPv4Address(\'192.168.1.1\'))) ==
IPv4Address(\'192.168.1.1\')
Raises:
IPv4IpValidationError: If ipaddr isn\'t a valid IPv4 address.
IPv4NetmaskValidationError: If the netmask isn\'t valid for
an IPv4 address.'

def __init__(self, address):

    BaseIP.__init__(self, address)
    BaseV4.__init__(self, address)
    if isinstance(address, (int, long)):
        self._ip = address
        if ((address < 0) or (address > self._ALL_ONES)):
            raise IPv4IpValidationError(address)
        return
    if _compat_has_real_bytes:
        if (isinstance(address, bytes) and (len(address) == 4)):
            self._ip = struct.unpack('!I', address)[0]
            return
    addr_str = str(address)
    if (not self._is_valid_ip(addr_str)):
        raise IPv4IpValidationError(addr_str)
    self._ip = self._ip_int_from_string(addr_str)
