forked from pcewebpython/echo-server
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathport_descriptor.py
38 lines (31 loc) · 1.15 KB
/
port_descriptor.py
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
33
34
35
36
37
38
import socket
import sys
def port_descriptions(lower=0, upper=65535):
for port in range(lower, upper):
try:
print("Port {}: {}".format(port, socket.getservbyport(port)))
except OSError:
continue
if __name__ == '__main__':
if len(sys.argv) == 1:
port_descriptions()
elif len(sys.argv) == 3:
try:
lower_bound = int(sys.argv[1])
upper_bound = int(sys.argv[2])
if lower_bound < 0 or lower_bound > 65535:
usage = """\nlower bound > 0, upper bound < 65535\n"""
print(usage, file=sys.stderr)
sys.exit(1)
else:
port_descriptions(lower=lower_bound, upper=upper_bound)
except ValueError:
usage = """\nenter integers as lower and upper bounds, without commas\n"""
print(usage, file=sys.stderr)
sys.exit(1)
else:
usage = """\nusage:
\nall ports: python port_descriptor
\nrange of ports: python port_descriptor (lower_bound) (upper_bound)\n"""
print(usage, file=sys.stderr)
sys.exit(1)