HEX
Server: LiteSpeed
System: Linux shams.tasjeel.ae 5.14.0-611.5.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Nov 11 08:09:09 EST 2025 x86_64
User: infowars (1469)
PHP: 8.2.29
Disabled: NONE
Upload Files
File: //lib/python3.9/site-packages/netaddr/ip/__pycache__/nmap.cpython-39.pyc
a

��g��@s`dZddlmZddlmZmZddlmZmZm	Z	dd�Z
dd�Zd	d
�Zdd�Z
d
d�ZdS)z�
Routines for dealing with nmap-style IPv4 address ranges.

Based on nmap's Target Specification :-

    http://nmap.org/book/man-target-specification.html
�)�AddrFormatError)�	IPAddress�	IPNetwork)�_iter_range�_is_str�
_iter_nextcCs�t�}|�d�D]�}d|vr�|�dd�\}}|s4d}|s<d}t|�}t|�}d|kr`dkrznnd|krxdks�ntd|f��||kr�td|f��t||d�D]}|�|�q�qt|�}d|kr�dks�ntd|f��|�|�qt|�S)N�,�-�r�z!octet value overflow for spec %s!z'left side of hyphen must be <= right %r)�set�split�int�
ValueErrorr�add�sorted)�spec�values�element�left�rightZlowZhighZoctet�r�3/usr/lib/python3.9/site-packages/netaddr/ip/nmap.py�_nmap_octet_target_valuess*.rcCstt|�stdt|���|s$td��|�d�}t|�dkrHtd|f��t|d�t|d�t|d�t|d	�fS)
Nzstring expected, not %sz*nmap target specification cannot be blank!�.�zinvalid nmap range: %srr
��)r�	TypeError�typerr
�lenrr)�nmap_target_spec�tokensrrr�_generate_nmap_octet_ranges0s




�r#c

cs�d|vrl|�dd�\}}dt|�kr0dks@ntd|f��t|�}|jdkrZtd��|D]
}|Vq^nld|vr�t|�VnXt|�}|dD]F}|dD]8}|d	D]*}|d
D]}	td||||	fd�Vq�q�q�q�dS)N�/r
r�!zCIDR prefix expected, not %srzCIDR only support for IPv4!�:rrz%d.%d.%d.%d)r
rrr�versionrr#)
�target_spec�_�prefix�net�ipZoctet_ranges�w�x�y�zrrr�_parse_nmap_target_specDs"

r1c
Cs0ztt|��WdStttfy*Yn0dS)z�
    :param target_spec: an nmap-style IP range target specification.

    :return: ``True`` if IP range target spec is valid, ``False`` otherwise.
    TF)rr1rrr)r(rrr�valid_nmap_rangeZsr2cgs"|D]}t|�D]
}|VqqdS)aW
    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)r1)r!r(�addrrrr�iter_nmap_rangehsr4N)�__doc__Znetaddr.corerZ
netaddr.iprrZnetaddr.compatrrrrr#r1r2r4rrrr�<module>s