3
[_ð]0  ã               @   s4   d Z ddlZddlZddlmZ dd„ Zdd„ ZdS )	zIPv4 helper functions.é    Né   )Úbinary_typec             C   sF   t | ƒdkrtjj‚t| tƒs&t| ƒ} d| d | d | d | d f S )z‘Convert an IPv4 address in binary form to text form.

    *address*, a ``binary``, the IPv4 address in binary form.

    Returns a ``text``.
    é   z%u.%u.%u.%ur   r   é   é   )ÚlenÚdnsÚ	exceptionÚSyntaxErrorÚ
isinstanceÚ	bytearray)Úaddress© r   ú-/tmp/pip-build-yz_zf6az/dnspython/dns/ipv4.pyÚ	inet_ntoa   s    
r   c          	   C   s¤   t | tƒs| jƒ } | jdƒ}t|ƒdkr0tjj‚x<|D ]4}|jƒ sJtjj‚t|ƒdkr6|d dkr6tjj‚q6W ydd„ |D ƒ}t	j
d
|žŽ S    tjj‚Y nX d	S )z�Convert an IPv4 address in text form to binary form.

    *text*, a ``text``, the IPv4 address in textual form.

    Returns a ``binary``.
    ó   .r   r   r   Ú0c             S   s   g | ]}t |ƒ‘qS r   )Úint)Ú.0Úpartr   r   r   ú
<listcomp><   s    zinet_aton.<locals>.<listcomp>ÚBBBBN)r   )r   r   ÚencodeÚsplitr   r   r	   r
   ÚisdigitÚstructÚpack)ÚtextÚpartsr   Úbytesr   r   r   Ú	inet_aton(   s    


r    )Ú__doc__r   Zdns.exceptionr   Ú_compatr   r   r    r   r   r   r   Ú<module>   s
   