Skip to main content

The IP Range Toolkit is a versatile Python library for generating and working with IP address ranges.

Project description

The IP Range Toolkit is a versatile Python library for generating and working with IP address ranges.

Tested against Windows 10 / Python 3.10 / Anaconda

pip install iprangetoolkit

IP Range Toolkit

The IP Range Toolkit is a versatile Python library for generating and working with IP address ranges. It provides functions to generate IPv4 and IPv6 address ranges from various inputs, convert between IP address formats, and create regular expressions for matching IP addresses within specified ranges. Whether you're a network administrator, a developer building IP-related tools, or simply need to work with IP addresses in your Python projects, this toolkit simplifies your tasks.

Key Features

Generate IP Ranges:

Easily create ranges of IPv4 and IPv6 addresses based on starting and ending addresses or IP addresses with subnet masks.

Regular Expression Generation:

Create regular expression patterns (fast Trie regex) to match IP addresses within specified ranges or individual addresses.

Conversion Utilities:

Convert between different IP address formats, such as integer representations and dotted-decimal notation.

IPv6 Support:

Full support for IPv6 addresses and ranges, including regular expression generation.

Efficient Algorithms:

Utilizes efficient algorithms to handle large IP address ranges and conversions.

from iprangetoolkit import (
generate_ipv4_range_from_2_ips,
generate_ipv6_range_from_2_ips,
generate_ipv4_range_from_1_ip_with_subnetmask,
generate_ipv6_range_from_1_ip_with_subnetmask,
generate_regex_from_ipv4_range,
generate_regex_from_individual_ipsv4,
)

ipstart = "1.2.4.5"
ipend = "1.3.5.1"
ips = generate_ipv4_range_from_2_ips(ipstart, ipend)
print(ips)

# ips
# Out[24]:
# array(['1.2.4.5', '1.2.4.6', '1.2.4.7', ..., '1.3.4.2', '1.3.5.0',
#        '1.3.5.1'], dtype='<U15')


ips2 = generate_ipv6_range_from_2_ips(
    beginning="2001:0db8:0001:0000:0000:0ab9:C0A8:0002",
    final="2001:0db8:0001:0000:0000:0ab9:C0A8:f202",
)
print(ips2)
# ips2
# Out[25]:
# array(['2001:0db8:0001:0000:0000:0ab9:c0a8:0002',
#        '2001:0db8:0001:0000:0000:0ab9:c0a8:0003',
#        '2001:0db8:0001:0000:0000:0ab9:c0a8:0004', ...,
#        '2001:0db8:0001:0000:0000:0ab9:c0a8:f1ff',
#        '2001:0db8:0001:0000:0000:0ab9:c0a8:f200',
#        '2001:0db8:0001:0000:0000:0ab9:c0a8:f201'], dtype='<U39')

iv4 = generate_ipv4_range_from_1_ip_with_subnetmask(
    ipaddress_with_subnetmask="69.30.212.168/29"
)

# iv4
# Out[28]:
# array(['69.30.212.168', '69.30.212.169', '69.30.212.170', '69.30.212.171',
#        '69.30.212.172', '69.30.212.173', '69.30.212.174', '69.30.212.175'],
#       dtype='<U15')


iv6 = generate_ipv6_range_from_1_ip_with_subnetmask(
    ipaddress_with_subnetmask="2001:0db8:1234:5678:9abc:def0:1234:5678/106"
)
print(iv6)
# iv6
# Out[29]:
# array(['2001:0db8:1234:5678:9abc:def0:1234:5678',
#        '2001:0db8:1234:5678:9abc:def0:1234:5679',
#        '2001:0db8:1234:5678:9abc:def0:1234:567a', ...,
#        '2001:0db8:1234:5678:9abc:def0:123f:fffc',
#        '2001:0db8:1234:5678:9abc:def0:123f:fffd',
#        '2001:0db8:1234:5678:9abc:def0:123f:fffe'], dtype='<U39')

privat1 = generate_regex_from_ipv4_range(
    startip="192.168.0.0",
    endip="192.168.255.255",
    asbytes=True,
    compileregex=False,
)
# privat1 - fast Trie regex - https://stackoverflow.com/a/42789508/15096247
# Out[30]: b'\\b192\\.168\\.(?:0\\.[\\d]|1(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d]|\\.[\\d])|2(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.012345]|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|3(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|4(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|5(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|6(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|7(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|8(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|9(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d]))\\b'

privat2 = generate_regex_from_ipv4_range(
    startip="172.16.0.0",
    endip="172.31.255.255",
    asbytes=False,
    compileregex=True,
)
# privat2 - fast Trie regex - https://stackoverflow.com/a/42789508/15096247
# Out[5]: regex.Regex('\\b172\\.(?:1(?:6\\.(?:0\\.[\\d]|1(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d]|\\.[\\d])|2(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.012345]|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|3(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|4(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|5(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|6(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|7(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|8(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|9(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d]))|7\\.(?:0\\.[\\d]|1(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d]|\\.[\\d])|2(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.012345]|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|3(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|4(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|5(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|6(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|7(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|8(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|9(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d]))|8\\.(?:0\\.[\\d]|1(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d]|\\.[\\d])|2(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.012345]|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|3(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|4(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|5(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|6(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|7(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|8(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|9(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d]))|9\\.(?:0\\.[\\d]|1(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d]|\\.[\\d])|2(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.012345]|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|3(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|4(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|5(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|6(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|7(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|8(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|9(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])))|2(?:0\\.(?:0\\.[\\d]|1(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d]|\\.[\\d])|2(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.012345]|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|3(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|4(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|5(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|6(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|7(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|8(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|9(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d]))|1\\.(?:0\\.[\\d]|1(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d]|\\.[\\d])|2(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.012345]|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|3(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|4(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|5(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|6(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|7(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|8(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|9(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d]))|2\\.(?:0\\.[\\d]|1(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d]|\\.[\\d])|2(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.012345]|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|3(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|4(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|5(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|6(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|7(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|8(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|9(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d]))|3\\.(?:0\\.[\\d]|1(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d]|\\.[\\d])|2(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.012345]|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|3(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|4(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|5(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|6(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|7(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|8(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|9(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d]))|4\\.(?:0\\.[\\d]|1(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d]|\\.[\\d])|2(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.012345]|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|3(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|4(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|5(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|6(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|7(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|8(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|9(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d]))|5\\.(?:0\\.[\\d]|1(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d]|\\.[\\d])|2(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.012345]|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|3(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|4(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|5(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|6(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|7(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|8(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|9(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d]))|6\\.(?:0\\.[\\d]|1(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d]|\\.[\\d])|2(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.012345]|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|3(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|4(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|5(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|6(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|7(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|8(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|9(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d]))|7\\.(?:0\\.[\\d]|1(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d]|\\.[\\d])|2(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.012345]|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|3(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|4(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|5(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|6(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|7(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|8(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|9(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d]))|8\\.(?:0\\.[\\d]|1(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d]|\\.[\\d])|2(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.012345]|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|3(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|4(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|5(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|6(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|7(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|8(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|9(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d]))|9\\.(?:0\\.[\\d]|1(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d]|\\.[\\d])|2(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.012345]|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|3(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|4(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|5(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|6(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|7(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|8(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|9(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])))|3(?:0\\.(?:0\\.[\\d]|1(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d]|\\.[\\d])|2(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.012345]|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|3(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|4(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|5(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|6(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|7(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|8(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|9(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d]))|1\\.(?:0\\.[\\d]|1(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d]|\\.[\\d])|2(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.012345]|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|3(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|4(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|5(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|6(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|7(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|8(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|9(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d]))))\\b', flags=regex.V0)

repa = generate_regex_from_individual_ipsv4(
    iplist=["1.2.3.4", "3.5.3.1", "1.10.12.1", "192.168.255.255"],
    asbytes=False,
    compileregex=False,
)

# repa
# Out[3]: '\\b(?:1(?:92\\.168|\\.(?:10\\.12|2\\.3\\.4))|3\\.5\\.3\\.1)\\b'
# regex.findall( '\\b(?:1(?:92\\.168|\\.(?:10\\.12|2\\.3\\.4))|3\\.5\\.3\\.1)\\b',r'''repa=generate_regex_from_individual_ipsv4(
#     iplist=['1.2.3.4', '3.5.3.1', '1.10.12.1','192.168.255.255'
#             ], asbytes=False,compileregex=False
# )
# ''')
# Out[4]: ['1.2.3.4', '3.5.3.1', '1.10.12', '192.168']

privat3 = generate_regex_from_ipv4_range(
    startip="10.0.0.0",
    endip="10.255.255.255",
    asbytes=False,
    compileregex=True,
)
print(privat3)
# very fast regex
# regex.Regex("\\b10\\.(?:0\\.(?:0\\.[\\d]|1(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d]|\\.[\\d])|2(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.012345]|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|3(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|4(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|5(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|6(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|7(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|8(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|9(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d]))|1(?:0(?:0\\.[\\d]|1\\.[\\d]|2\\.[\\d]|3\\.[\\d]|4\\.[\\d]|5\\.[\\d]|6\\.[\\d]|7\\.[\\d]|8\\.[\\d]|9\\.[\\d]|\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d]))|1(?:0\\.[\\d]|1\\.[\\d]|2\\.[\\d]|3\\.[\\d]|4\\.[\\d]|5\\.[\\d]|6\\.[\\d]|7\\.[\\d]|8\\.[\\d]|9\\.[\\d]|\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d]))|2(?:0\\.[\\d]|1\\.[\\d]|2\\.[\\d]|3\\.[\\d]|4\\.[\\d]|5\\.[\\d]|6\\.[\\d]|7\\.[\\d]|8\\.[\\d]|9\\.[\\d]|\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d]))|3(?:0\\.[\\d]|1\\.[\\d]|2\\.[\\d]|3\\.[\\d]|4\\.[\\d]|5\\.[\\d]|6\\.[\\d]|7\\.[\\d]|8\\.[\\d]|9\\.[\\d]|\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d]))|4(?:0\\.[\\d]|1\\.[\\d]|2\\.[\\d]|3\\.[\\d]|4\\.[\\d]|5\\.[\\d]|6\\.[\\d]|7\\.[\\d]|8\\.[\\d]|9\\.[\\d]|\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d]))|5(?:0\\.[\\d]|1\\.[\\d]|2\\.[\\d]|3\\.[\\d]|4\\.[\\d]|5\\.[\\d]|6\\.[\\d]|7\\.[\\d]|8\\.[\\d]|9\\.[\\d]|\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d]))|6(?:0\\.[\\d]|1\\.[\\d]|2\\.[\\d]|3\\.[\\d]|4\\.[\\d]|5\\.[\\d]|6\\.[\\d]|7\\.[\\d]|8\\.[\\d]|9\\.[\\d]|\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d]))|7(?:0\\.[\\d]|1\\.[\\d]|2\\.[\\d]|3\\.[\\d]|4\\.[\\d]|5\\.[\\d]|6\\.[\\d]|7\\.[\\d]|8\\.[\\d]|9\\.[\\d]|\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d]))|8(?:0\\.[\\d]|1\\.[\\d]|2\\.[\\d]|3\\.[\\d]|4\\.[\\d]|5\\.[\\d]|6\\.[\\d]|7\\.[\\d]|8\\.[\\d]|9\\.[\\d]|\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d]))|9(?:0\\.[\\d]|1\\.[\\d]|2\\.[\\d]|3\\.[\\d]|4\\.[\\d]|5\\.[\\d]|6\\.[\\d]|7\\.[\\d]|8\\.[\\d]|9\\.[\\d]|\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d]))|\\.(?:0\\.[\\d]|1(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d]|\\.[\\d])|2(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.012345]|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|3(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|4(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|5(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|6(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|7(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|8(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|9(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])))|2(?:0(?:0\\.[\\d]|1\\.[\\d]|2\\.[\\d]|3\\.[\\d]|4\\.[\\d]|5\\.[\\d]|6\\.[\\d]|7\\.[\\d]|8\\.[\\d]|9\\.[\\d]|\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d]))|1(?:0\\.[\\d]|1\\.[\\d]|2\\.[\\d]|3\\.[\\d]|4\\.[\\d]|5\\.[\\d]|6\\.[\\d]|7\\.[\\d]|8\\.[\\d]|9\\.[\\d]|\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d]))|2(?:0\\.[\\d]|1\\.[\\d]|2\\.[\\d]|3\\.[\\d]|4\\.[\\d]|5\\.[\\d]|6\\.[\\d]|7\\.[\\d]|8\\.[\\d]|9\\.[\\d]|\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d]))|3(?:0\\.[\\d]|1\\.[\\d]|2\\.[\\d]|3\\.[\\d]|4\\.[\\d]|5\\.[\\d]|6\\.[\\d]|7\\.[\\d]|8\\.[\\d]|9\\.[\\d]|\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d]))|4(?:0\\.[\\d]|1\\.[\\d]|2\\.[\\d]|3\\.[\\d]|4\\.[\\d]|5\\.[\\d]|6\\.[\\d]|7\\.[\\d]|8\\.[\\d]|9\\.[\\d]|\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d]))|5(?:0\\.[\\d]|1\\.[\\d]|2\\.[\\d]|3\\.[\\d]|4\\.[\\d]|5\\.[\\d]|\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d]))|6\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|7\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|8\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|9\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|\\.(?:0\\.[\\d]|1(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d]|\\.[\\d])|2(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.012345]|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|3(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|4(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|5(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|6(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|7(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|8(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|9(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])))|3(?:0\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|1\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|2\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|3\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|4\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|5\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|6\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|7\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|8\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|9\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|\\.(?:0\\.[\\d]|1(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d]|\\.[\\d])|2(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.012345]|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|3(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|4(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|5(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|6(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|7(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|8(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|9(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])))|4(?:0\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|1\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|2\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|3\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|4\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|5\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|6\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|7\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|8\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|9\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|\\.(?:0\\.[\\d]|1(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d]|\\.[\\d])|2(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.012345]|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|3(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|4(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|5(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|6(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|7(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|8(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|9(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])))|5(?:0\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|1\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|2\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|3\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|4\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|5\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|6\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|7\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|8\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|9\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|\\.(?:0\\.[\\d]|1(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d]|\\.[\\d])|2(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.012345]|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|3(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|4(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|5(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|6(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|7(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|8(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|9(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])))|6(?:0\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|1\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|2\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|3\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|4\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|5\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|6\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|7\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|8\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|9\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|\\.(?:0\\.[\\d]|1(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d]|\\.[\\d])|2(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.012345]|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|3(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|4(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|5(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|6(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|7(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|8(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|9(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])))|7(?:0\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|1\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|2\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|3\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|4\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|5\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|6\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|7\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|8\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|9\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|\\.(?:0\\.[\\d]|1(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d]|\\.[\\d])|2(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.012345]|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|3(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|4(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|5(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|6(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|7(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|8(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|9(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])))|8(?:0\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|1\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|2\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|3\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|4\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|5\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|6\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|7\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|8\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|9\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|\\.(?:0\\.[\\d]|1(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d]|\\.[\\d])|2(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.012345]|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|3(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|4(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|5(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|6(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|7(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|8(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|9(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])))|9(?:0\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|1\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|2\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|3\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|4\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|5\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|6\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|7\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|8\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|9\\.(?:0\\.|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d])|\\.(?:0\\.[\\d]|1(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.\\d]|6[\\.\\d]|7[\\.\\d]|8[\\.\\d]|9[\\.\\d]|\\.[\\d])|2(?:0[\\.\\d]|1[\\.\\d]|2[\\.\\d]|3[\\.\\d]|4[\\.\\d]|5[\\.012345]|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|3(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|4(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|5(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|6(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|7(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|8(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d])|9(?:0\\.|1\\.|2\\.|3\\.|4\\.|5\\.|6\\.|7\\.|8\\.|9\\.|\\.[\\d]))))\\b",flags=regex.V0,)
# alra=''.join(iv4.astype('U'))
# privat3.findall(alra)

Project details


Release history Release notifications | RSS feed

This version

0.10

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iprangetoolkit-0.10.tar.gz (35.3 kB view details)

Uploaded Source

Built Distribution

iprangetoolkit-0.10-py3-none-any.whl (31.0 kB view details)

Uploaded Python 3

File details

Details for the file iprangetoolkit-0.10.tar.gz.

File metadata

  • Download URL: iprangetoolkit-0.10.tar.gz
  • Upload date:
  • Size: 35.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.12

File hashes

Hashes for iprangetoolkit-0.10.tar.gz
Algorithm Hash digest
SHA256 0479e0e9dd2b92778d8e8b7700b25642f1fb2b9e7dc2c988a5ebe60d3f7b9365
MD5 2de99401e136eab887c5600fa3e6f52b
BLAKE2b-256 19030dededa8c43a4d468896dee0f460959d64b88f0a3f7020188fbf84bd69cb

See more details on using hashes here.

File details

Details for the file iprangetoolkit-0.10-py3-none-any.whl.

File metadata

File hashes

Hashes for iprangetoolkit-0.10-py3-none-any.whl
Algorithm Hash digest
SHA256 744f69c640d345811f70932a81b2a16d39c36791799ec9f8cfb7ad65248d01e3
MD5 bffc478531e3207acc2c726cca54d1a0
BLAKE2b-256 5eafeac9f25e62465d103715466e735f509e50600efe8fe7144a3d539e1542a6

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page