blob: 6b01d5d00d4b7cd253c62b7c27083f707947d8fd (
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
30
31
32
|
#!/usr/bin/env python3
import argparse
import ipaddress
import sys
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 line in args.infile.readlines()
if (ip := line.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))
def conv(n):
"""helper function to convert based on the name of the program"""
return 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)
|