File: //usr/local/CyberCP/lib/python3.10/site-packages/validators/__pycache__/ip_address.cpython-310.pyc
o
�h^ � @ s� d Z ddlmZmZmZmZmZmZ ddlZddl m
Z
ddlmZ de
de
e fd d
�Zeddddd
�de
dedede
e def
dd��Zedddd�de
dededefdd��ZdS )zIP Address.� )�AddressValueError�IPv4Address�IPv4Network�IPv6Address�IPv6Network�NetmaskValueErrorN)�Optional� )� validator�value�
is_privatec sD |d u rdS t � fdd�dD ��st�d� �st�d� �r|S | S )NTc 3 s � | ]}� � |�V qd S )N)�
startswith)�.0�l_bit�r � �H/usr/local/CyberCP/lib/python3.10/site-packages/validators/ip_address.py� <genexpr> s
� �
�z$_check_private_ip.<locals>.<genexpr>> �10.�127.�0.0.0.0�169.254.�192.168.z^172\.(?:1[6-9]|2\d|3[0-1])\.z&^(?:22[4-9]|23[0-9]|24[0-9]|25[0-5])\.)�any�re�match)r r r r r �_check_private_ip s ��
�
�r TF)�cidr�strict�private�host_bitr r r r c
C sp | sdS z&|r!|r| � d�dkrtd��t| | d�ot| |�W S t| �o)t| |�W S tttfy7 Y dS w )a Returns whether a given value is a valid IPv4 address.
From Python version 3.9.5 leading zeros are no longer tolerated
and are treated as an error. The initial version of ipv4 validator
was inspired from [WTForms IPAddress validator][1].
[1]: https://github.com/wtforms/wtforms/blob/master/src/wtforms/validators.py
Examples:
>>> ipv4('123.0.0.7')
# Output: True
>>> ipv4('1.1.1.1/8')
# Output: True
>>> ipv4('900.80.70.11')
# Output: ValidationError(func=ipv4, args={'value': '900.80.70.11'})
Args:
value:
IP address string to validate.
cidr:
IP address string may contain CIDR notation.
strict:
IP address string is strictly in CIDR notation.
private:
IP address is public if `False`, private/local/loopback/broadcast if `True`.
host_bit:
If `False` and host bits (along with network bits) _are_ set in the supplied
address, this function raises a validation error. ref [IPv4Network][2].
[2]: https://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network
Returns:
(Literal[True]): If `value` is a valid IPv4 address.
(ValidationError): If `value` is an invalid IPv4 address.
F�/r z*IPv4 address was expected in CIDR notation�r )�count�
ValueErrorr r r r r )r r r r r r r r �ipv4) s ,�r% )r r r c
C s\ | sdS z|r|r| � d�dkrtd��t| | d�W S t| �W S tttfy- Y dS w )ax Returns if a given value is a valid IPv6 address.
Including IPv4-mapped IPv6 addresses. The initial version of ipv6 validator
was inspired from [WTForms IPAddress validator][1].
[1]: https://github.com/wtforms/wtforms/blob/master/src/wtforms/validators.py
Examples:
>>> ipv6('::ffff:192.0.2.128')
# Output: True
>>> ipv6('::1/128')
# Output: True
>>> ipv6('abc.0.0.1')
# Output: ValidationError(func=ipv6, args={'value': 'abc.0.0.1'})
Args:
value:
IP address string to validate.
cidr:
IP address string may contain CIDR annotation.
strict:
IP address string is strictly in CIDR notation.
host_bit:
If `False` and host bits (along with network bits) _are_ set in the supplied
address, this function raises a validation error. ref [IPv6Network][2].
[2]: https://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network
Returns:
(Literal[True]): If `value` is a valid IPv6 address.
(ValidationError): If `value` is an invalid IPv6 address.
Fr! r z*IPv6 address was expected in CIDR notationr"