blob: fffc6fa70610cd00e4acfd1002fffa8e0f12a4fb (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
#!/usr/bin/env python3
import argparse
import ipaddress
import sys
import fileinput
argp = argparse.ArgumentParser()
argp.add_argument("infile", nargs="?", type=argparse.FileType("r"), default=sys.stdin)
args = argp.parse_args()
# read the input, filter out commented lines and remove new line characters
string_ips = [
ip for l in args.infile.readlines() if (ip := l.strip()) and not ip.startswith("#")
]
# convert entries to int if the string is a numeric value
ips = list(map(lambda n: int(n) if n.isnumeric() else n, string_ips))
# helper function to convert based on the name of the program
conv = lambda n: int(n) if argp.prog == "ip2int" else str(n)
for ip in ips:
try:
r = conv(ipaddress.ip_address(ip))
print(f"{ip:15} → {r:15}")
except Exception as e:
print(f"error: {e}", file=sys.stderr)
|