-
Notifications
You must be signed in to change notification settings - Fork 4
/
get_description.py
executable file
·43 lines (38 loc) · 1.38 KB
/
get_description.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
39
40
41
42
43
#!/usr/bin/env python3
import argparse
import re
from pylib.whois import whois_query
def resolve(filename):
with open(filename, 'r') as f:
lines = f.readlines()
f.close()
limit = args.limit
count = 0
for i in range(len(lines)):
if re.match(r'.*-no-description-.*', lines[i]):
count += 1
line = lines[i].split()
if count > limit:
break
else:
if re.match(r'^AS.*', line[0]):
response = whois_query(line[0], "as-name", True)
else:
response = whois_query(line[0], "netname", True)
if response is None:
name = "-no-description-"
else:
name = response.strip()
print(line[0] + " " + name)
lines[i]=str(line[0] + " " + name + "\n")
with open(filename, 'w') as f:
f.writelines(lines)
f.close()
parser = argparse.ArgumentParser(description='Resolve names for ASNs and Networks.')
parser.add_argument('filename', help='The file with list of the ASNs or Networks.')
parser.add_argument('--limit', type=int, help='Limit the number of whois queries to prevent blacklisting from whois servers', default=2500)
args = parser.parse_args()
if not (args.filename):
parser.print_help()
exit()
resolve(args.filename)