Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def convert_ip_to_int(ip):
- return sum(int(octet) * 256**(3-i) for i, octet in enumerate(ip.split('.')))
- def ip_in_range(ip, all_ranges):
- as_integer = convert_ip_to_int(ip)
- return list(filter(lambda r: as_integer in r[1], all_ranges))
- pairs = [
- "10.39.116.1 - 10.39.116.254",
- "10.40.116.1 - 10.40.116.254",
- "10.41.116.1 - 10.41.116.254",
- "10.103.20.1 - 10.103.20.254",
- "10.103.21.1 - 10.103.21.254",
- "10.103.71.1 - 10.103.71.254",
- "10.103.72.1 - 10.103.72.254",
- "10.189.20.1 - 10.189.20.254",
- "10.189.21.1 - 10.189.21.254",
- "10.189.71.1 - 10.189.71.254",
- "10.189.72.1 - 10.189.72.254",
- "10.253.16.1 - 10.253.16.254",
- "10.253.18.1 - 10.253.18.254",
- "10.253.19.1 - 10.253.19.254",
- "10.253.20.1 - 10.253.20.254",
- "131.199.27.1 - 131.199.27.254",
- "192.168.1.10"
- ]
- ranges = []
- for pair in pairs:
- split = pair.split(' - ')
- if len(split) == 1:
- split.append(split[0])
- minimum, maximum = map(convert_ip_to_int, split)
- ranges.append((pair, range(minimum, maximum+1)))
- in_range = "10.253.18.50"
- print(f'{in_range} in range: {ip_in_range(in_range, ranges)}')
- not_in_range = "192.168.1.1"
- print(f'{not_in_range} in range: {ip_in_range(not_in_range, ranges)}')
- single = "192.168.1.10"
- print(f'{single} in range: {ip_in_range(single, ranges)}')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement