Your IP : 216.73.216.213


Current Path : /opt/alt/python35/lib/python3.5/site-packages/asn1crypto/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib/python3.5/site-packages/asn1crypto/__pycache__/_inet.cpython-35.pyc



�8aW��@s�ddlmZmZmZmZddlZddlZddlmZddl	m
Z
mZmZm
Z
dd�Zdd	�ZdS)
�)�unicode_literals�division�absolute_import�print_functionN�)�unwrap)�byte_cls�
bytes_to_list�str_cls�	type_namec
Cs|ttjtjg�krQttdttj�ttj�t|����t|t�s{t	tdt
|����|tjkr�dnd}t|�|kr�ttd|t|����|tjkr�dtt
|��Stjd|�}i}d}d	}x�t|d�D]n\}}|dkrz|d	k	r�||}	|	|krb|||	<t||	�}d	}q|d	kr|}qWdd�|D�}
|d
kr�dj|
�S||}||}dj|
d	|��ddj|
|d	��S)a
    Windows compatiblity shim for socket.inet_ntop().

    :param address_family:
        socket.AF_INET for IPv4 or socket.AF_INET6 for IPv6

    :param packed_ip:
        A byte string of the network form of an IP address

    :return:
        A unicode string of the IP address
    zp
            address_family must be socket.AF_INET (%s) or socket.AF_INET6 (%s),
            not %s
            zA
            packed_ip must be a byte string, not %s
            ��zA
            packed_ip must be %d bytes long - is %d
            z%d.%d.%d.%ds	!HHHHHHHHrNrcSs&g|]}t|�dd��qS)�N)�hex)�.0�o�r�A/opt/alt/python35/lib/python3.5/site-packages/asn1crypto/_inet.py�
<listcomp>Is	zinet_ntop.<locals>.<listcomp>r�:z::���)r)�set�socket�AF_INET�AF_INET6�
ValueErrorr�repr�
isinstancer�	TypeErrorr�len�tupler	�struct�unpack�	enumerate�max�join)
�address_familyZ	packed_ipZrequired_len�octetsZruns_of_zeroZlongest_runZ
zero_index�i�octet�lengthZhexedZ
zero_startZzero_endrrr�	inet_ntopsL

	



r+cCst|ttjtjg�krQttdttj�ttj�t|����t|t�s{t	tdt
|����|tjkr1|jd�}t|�dk}|sg}xF|D]>}t
|�}|dks�|dkr�d}P|j|�q�W|r!ttdt|����tjd	|�Sd
}|jd�}|dkr[d}n�|dkr�|jd
�}t|�dk}nb|jd�\}}|jd
�}	|jd
�}
dt|	�t|
�}|	dg||
}|sUg}xI|D]A}t
|d�}|dks-|dkr4d}P|j|�qWtjd|�Sttdt|����dS)a
    Windows compatiblity shim for socket.inet_ntop().

    :param address_family:
        socket.AF_INET for IPv4 or socket.AF_INET6 for IPv6

    :param ip_string:
        A unicode string of an IP address

    :return:
        A byte string of the network form of the IP address
    zp
            address_family must be socket.AF_INET (%s) or socket.AF_INET6 (%s),
            not %s
            zD
            ip_string must be a unicode string, not %s
            �.r�rTz�
                ip_string must be a dotted string with four integers in the
                range of 0 to 255, got %s
                s!BBBBFz::rr��0r
i��s	!HHHHHHHHz?
        ip_string must be a valid ipv6 string, got %s
        N)rrrrrrrrr
rr�splitr�int�appendr!�pack�count)r&Z	ip_stringr'�error�intsrZomittedZbegin�endZbegin_octetsZ
end_octets�missingrrr�	inet_ptonTsd
	
r9)�
__future__rrrrrr!Z_errorsr�_typesrr	r
rr+r9rrrr�<module>s""I