Repository URL to install this package:
| 
      
        
        
        Version: 
        
         
          
          3.3.30  ▾
        
         | 
ó
®EYc           @   sy   d  Z  d d l m Z d d l m Z m Z d d l m Z m Z m	 Z	 d   Z
 d   Z d   Z d   Z
 d	   Z d
 S(   s   
Routines for dealing with nmap-style IPv4 address ranges.
Based on nmap's Target Specification :-
    http://nmap.org/book/man-target-specification.html
iÿÿÿÿ(   t   AddrFormatError(   t	   IPAddresst	   IPNetwork(   t   _iter_ranget   _is_strt
   _iter_nextc         C   sg  t    } xQ|  j d  D]@} d | k r| j d d  \ } } | sR d } n  | sa d } n  t |  } t |  } d | k o d k n o® d | k o¬ d k n sÄ t d |    n  | | k rã t d |   n  xs t | | d  D] } | j |  q÷ Wq t |  } d | k o4d k n sLt d |    n  | j |  q Wt |  S(   Nt   ,t   -i   i    iÿ   s!   octet value overflow for spec %s!s'   left side of hyphen must be <= right %r(   t   sett   splitt   intt
   ValueErrorR   t   addt   sorted(   t   spect   valuest   elementt   leftt   rightt   lowt   hight   octet(    (    sD   /home/tvault/.virtenv/lib/python2.7/site-packages/netaddr/ip/nmap.pyt   _nmap_octet_target_values   s*    			8c         C   s¦   t  |   s% t d t |     n  |  s: t d   n  |  j d  } t |  d k rn t d |    n  t | d  t | d  t | d  t | d	  f S(
   Ns   string expected, not %ss*   nmap target specification cannot be blank!t   .i   s   invalid nmap range: %si    i   i   i   (   R   t	   TypeErrort   typeR   R	   t   lenR    R   (   t   nmap_target_spect   tokens(    (    sD   /home/tvault/.virtenv/lib/python2.7/site-packages/netaddr/ip/nmap.pyt   _generate_nmap_octet_ranges0   s    
c   
   
   c   s8  d |  k r |  j  d d  \ } } d t |  k  oA d k  n sY t d |   n  t |   } | j d k r t d   n  x® | D] } | Vq Wn d |  k r¶ t |   Vn~ t |   } xo | d D]c } xZ | d D]N } xE | d	 D]9 } x0 | d
 D]$ }	 t d | | | |	 f d  Vq Wqï WqÞ WqÍ Wd  S(   Nt   /i   i    i!   s   CIDR prefix expected, not %si   s   CIDR only support for IPv4!t   :i   i   s   %d.%d.%d.%d(   R	   R
   R    R   t   versionR   R   (
   t   target_spect   _t   prefixt   nett   ipt   octet_rangest   wt   xt   yt   z(    (    sD   /home/tvault/.virtenv/lib/python2.7/site-packages/netaddr/ip/nmap.pyt   _parse_nmap_target_specD   s"    "
c         C   s9   y t  t |    t SWn t t t f k
 r4 n Xt S(   s   
    :param target_spec: an nmap-style IP range target specification.
    :return: ``True`` if IP range target spec is valid, ``False`` otherwise.
    (   R   R+   t   TrueR   R   R    t   False(   R!   (    (    sD   /home/tvault/.virtenv/lib/python2.7/site-packages/netaddr/ip/nmap.pyt   valid_nmap_rangeZ   s    c          g   s1   x* |  D]" } x t  |  D] } | Vq Wq Wd S(   sV  
    An generator that yields IPAddress objects from defined by nmap target
    specifications.
    See https://nmap.org/book/man-target-specification.html for details.
    :param *nmap_target_spec: one or more nmap IP range target specification.
    :return: an iterator producing IPAddress objects for each IP in the target spec(s).
    N(   R+   (   R   R!   t   addr(    (    sD   /home/tvault/.virtenv/lib/python2.7/site-packages/netaddr/ip/nmap.pyt   iter_nmap_rangeh   s    
N(   t   __doc__t   netaddr.coreR    t
   netaddr.ipR   R   t   netaddr.compatR   R   R   R   R   R+   R.   R0   (    (    (    sD   /home/tvault/.virtenv/lib/python2.7/site-packages/netaddr/ip/nmap.pyt   <module>   s