File: //lib/python2.7/site-packages/dns/ipv6.pyc
�
�b�Wc @ s� d Z d d l Z d d l Z d d l Z d d l Z d d l m Z m Z m Z e j
d � Z d � Z e j
d � Z
e j
d � Z e j
d � Z d
� Z d Z d � Z d S( s IPv6 helper functions.i����Ni ( t xranget binary_typet maybe_decodes
0+([0-9a-f]+)c C s5 t | � d k r! t d � � n t j | � } g } d } t | � } xe | | k r� | | | d !} t j | � } | d k r� | j d � } n | j | � | d 7} qK Wd } d } d } t }
xv t
d � D]h } | | d k r(|
r=| } | | } | | k r| } | } n t }
q=q� |
s� | } t }
q� q� W|
rud } | | } | | k ru| } | } qun | d k r| d k r�| d k s�| d
k r�| d
d k r�| d k r�d }
n d
}
|
t j
j | d � } q+d j | | � d d j | | | � } n d j | � } t | � S( s� Convert a network format IPv6 address into text.
@param address: the binary address
@type address: string
@rtype: string
@raises ValueError: the address isn't 16 bytes long
i s IPv6 addresses are 16 bytes longi i i i����i t 0i i t ffffs ::s ::ffff:i t :N( t lent
ValueErrort binasciit hexlifyt
_leading_zerot matcht Nonet groupt appendt FalseR t Truet dnst ipv4t inet_ntoat joinR ( t addresst hext chunkst it lt chunkt mt
best_startt best_lent startt
last_was_zerot endt current_lent prefix( ( s, /usr/lib/python2.7/site-packages/dns/ipv6.pyR s^
s (.*):(\d+\.\d+\.\d+\.\d+)$s ::.*s .*::$c
C sp t | t � s | j � } n | d k r3 d } n t j | � } | d k r� t t j j | j
d � � � } d | j
d � j � | d | d | d | d f j � } n t j | � } | d k r� | d } n( t
j | � } | d k r | d } n | j d � } t | � } | d
k r6t j j � n t } g } x� | D]� } | d k r�| rpt j j � n t } x� t d d
| d � D] } | j d � q�WqIt | � } | d
k r�t j j � n | d
k r�d d
| | } n | j | � qIW| d
k r#| r#t j j � n d j | � } y t j | � SWn&