File: iputil.py

package info (click to toggle)
weevely 4.0.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,336 kB
  • sloc: python: 7,732; php: 1,035; sh: 53; makefile: 2
file content (22 lines) | stat: -rw-r--r-- 716 bytes parent folder | download | duplicates (3)
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(',')
                ), []
            )