Files
AS_Network_List/as_network_list.py
2024-03-01 09:32:47 +01:00

41 lines
1.1 KiB
Python
Executable File

#!/usr/bin/env python3
import requests
import argparse
from cymruwhois import Client
def get_as_prefixes(asn):
url = f"https://stat.ripe.net/data/announced-prefixes/data.json?resource={asn}"
response = requests.get(url)
if response.status_code == 200:
data = response.json()
prefixes = data['data']['prefixes']
return [prefix['prefix'] for prefix in prefixes]
else:
return []
def get_as_whois(asn):
c = Client()
r = c.lookup(asn)
return r.owner
def main():
parser = argparse.ArgumentParser(description='./as_network_list.py -q AS61280')
parser.add_argument('asn', help='The AS number to get prefixes for.')
parser.add_argument('-q', '--quiet', action='store_true', help='Disable all output except prefixes.')
args = parser.parse_args()
asn = args.asn
prefixes = get_as_prefixes(asn)
whois_info = get_as_whois(asn)
if not args.quiet:
print(f"Prefixes announced by {asn}:")
print(f"Whois info for {asn}: {whois_info}")
for prefix in prefixes:
print(prefix)
if __name__ == "__main__":
main()