
    h	                     T    d Z ddlZddlZdedefdZdeez  defdZdeez  defdZy)	zIPv4 helper functions.    Naddressreturnc                     t        |       dk7  rt        j                  j                  | d    d| d    d| d    d| d    S )zConvert an IPv4 address in binary form to text form.

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

    Returns a ``str``.
       r   .         )lendns	exceptionSyntaxError)r   s    F/var/www/html/eduruby.in/venv/lib/python3.12/site-packages/dns/ipv4.py	inet_ntoar      sM     7|qmm'''aj\71:,a
|1WQZLAA    textc                 F   t        | t              s| j                         }n| }|j                  d      }t	        |      dk7  rt
        j                  j                  |D ]f  }|j                         st
        j                  j                  t	        |      dkD  s<|d   t        d      k(  sNt
        j                  j                   	 |D cg c]  }t        |       }}t        j                  dg| S c c}w # t        $ r t
        j                  j                  w xY w)zConvert an IPv4 address in text form to binary form.

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

    Returns a ``bytes``.
       .r   r   r   0BBBB)
isinstancebytesencodesplitr   r   r   r   isdigitordintstructpack	Exception)r   btextpartspartbs        r   	inet_atonr%   &   s     dE"KKE
5zQmm''' ,||~--+++t9q=T!WC0--+++,(#()4SY)){{6&A&& * (mm'''(s   	C< C7C< 7C< <$D c                 *    t        t        |             S )zVerify that *address* is a valid text form IPv4 address and return its
    canonical text form.

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

    Raises ``dns.exception.SyntaxError`` if the text is not valid.
    )r   r%   )r   s    r   canonicalizer'   B   s     Yt_%%r   )	__doc__r   dns.exceptionr   r   strr   r%   r'    r   r   <module>r,      sT   $   
Bu 
B 
B(C%K (E (8
&sU{ 
&s 
&r   