IP Addresses

This module provides a field for IP addresses. Let’s first generate an IP field:

>>> from z3c.schema import ip
>>> myip = ip.IPAddress()

Now make sure the IP addresses validate:

>>> myip.validate(10)
Traceback (most recent call last):
...
WrongType: (10, <type 'str'>, '')
>>> myip.validate('12.123.231.wee')
Traceback (most recent call last):
...
NotValidIPAdress: 12.123.231.wee
>>> myip.validate('10.0.0.1')

Since the field uses a simple function to validate its IP addresses, it is easier to use it for the tests:

>>> from z3c.schema.ip import isValidIPAddress
>>> isValidIPAddress('0.0.0.0')
True
>>> isValidIPAddress('255.255.255.255')
True
  • Number of pieces failures

    >>> isValidIPAddress('12.3.1')
    False
    >>> isValidIPAddress('1.0.0.0.0')
    False
    >>> isValidIPAddress('1.0.0.0.')
    False
    
  • Not integers failures

    >>> isValidIPAddress('x.0.0.0')
    False
    >>> isValidIPAddress('0x8.0.0.0')
    False
    
  • Not in range failures

    >>> isValidIPAddress('-1.0.0.0')
    False
    >>> isValidIPAddress('256.0.0.0')
    False
    >>> isValidIPAddress('1.-1.256.0')
    False
    

Reference

IP Address Field Interfaces