'Test if this address is allocated for private networks.
Returns:
A boolean, True if the address is reserved per RFC 1918.'

@property
def is_private(self):

    private_10 = IPv4Network('10.0.0.0/8')
    private_172 = IPv4Network('172.16.0.0/12')
    private_192 = IPv4Network('192.168.0.0/16')
    if isinstance(self, _BaseAddress):
        return ((self in private_10) or (self in private_172) or (self in private_192))
    else:
        return (((self.network_address in private_10) and (self.broadcast_address in private_10)) or ((self.network_address in private_172) and (self.broadcast_address in private_172)) or ((self.network_address in private_192) and (self.broadcast_address in private_192)))
