1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
import itertools
# Explode IP format 10.10.10.10-233
def ip_range(input_string):
octets = input_string.split('.')
chunks = [list(map(int, octet.split('-'))) for octet in octets]
ranges = [list(range(c[0], c[1] + 1)) if len(c) == 2 else c for c in chunks]
for address in itertools.product(*ranges):
yield '.'.join(map(str, address))
# Explode port format 22,23-33
def port_range(input_string):
return sum(
(
(
list(range(*[int(j) + k for k, j in enumerate(i.split('-'))]))
if '-' in i else [int(i)]
)
for i in input_string.split(',')
), []
)
|