mirror of
https://github.com/C24Be/AS_Network_List.git
synced 2026-01-24 23:26:38 +03:00
44 lines
1.4 KiB
Python
Executable File
44 lines
1.4 KiB
Python
Executable File
#!/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 = "-not-found-"
|
|
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)
|