mirror of
https://github.com/C24Be/AS_Network_List.git
synced 2026-01-24 23:26:38 +03:00
whois
This commit is contained in:
@@ -1,51 +1,23 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import argparse
|
||||
import requests
|
||||
from pylib.whois import whois_query
|
||||
|
||||
url = "https://stat.ripe.net/data/country-resource-list/data.json?resource=RU&v4_format=prefix"
|
||||
|
||||
def get_data(json, file, attr, field, prefix=""):
|
||||
limit = args.limit
|
||||
count = 0
|
||||
with open(file, 'w') as f:
|
||||
for x in json['data']['resources'][attr]:
|
||||
count += 1
|
||||
x = prefix+x.strip()
|
||||
if count > limit:
|
||||
response = None
|
||||
else:
|
||||
response = whois_query(x, field)
|
||||
if response is None:
|
||||
name = "-no-description-"
|
||||
else:
|
||||
name = response.split(':')[1].strip()
|
||||
name = "-no-description-"
|
||||
print(f"{x} {name}")
|
||||
f.write(str(x+" "+name) + '\n')
|
||||
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('--asn', action='store_true', help='Run the ASN query')
|
||||
parser.add_argument('--ipv4', action='store_true', help='Run the IPv4 query')
|
||||
parser.add_argument('--ipv6', action='store_true', help='Run the IPv6 query')
|
||||
parser.add_argument('--all', action='store_true', help='Run all queries')
|
||||
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.asn or args.ipv4 or args.ipv6 or args.all):
|
||||
parser.print_help()
|
||||
exit()
|
||||
|
||||
response = requests.get(url)
|
||||
response.raise_for_status()
|
||||
|
||||
data = response.json()
|
||||
|
||||
if args.asn or args.all:
|
||||
get_data(data, 'auto/all-ru-asn.txt', 'asn', 'as-name', "AS")
|
||||
|
||||
if args.ipv4 or args.all:
|
||||
get_data(data, 'auto/all-ru-ipv4.txt', 'ipv4', 'netname')
|
||||
|
||||
if args.ipv6 or args.all:
|
||||
get_data(data, 'auto/all-ru-ipv6.txt', 'ipv6', 'netname')
|
||||
get_data(data, 'auto/all-ru-asn.txt', 'asn', 'as-name', "AS")
|
||||
get_data(data, 'auto/all-ru-ipv4.txt', 'ipv4', 'netname')
|
||||
get_data(data, 'auto/all-ru-ipv6.txt', 'ipv6', 'netname')
|
||||
|
||||
Reference in New Issue
Block a user