# Author: Kerry Cordero # Version: 1.0.0 # Description: This script prompt for the ASN and output the IP Subnet blocks associated with that ASN. import re import socket def query_arin(asn): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.connect(("whois.radb.net", 43)) # The '-i origin' flag requests routes originating from the ASN sock.send(f"-i origin {asn}\n".encode()) response = b"" while True: data = sock.recv(4096) response += data if not data: break sock.close() return response.decode() def parse_subnets(response): # Extract subnets using regular expression and remove duplicates by turning the list into a set return list(set(re.findall(r"route:\s+([0-9\.\/]+)", response))) def main(): asn = input("Please enter the ASN: ") response = query_arin(asn) subnets = parse_subnets(response) print(f"The subnets for ASN {asn} are:") for subnet in subnets: print(subnet) if __name__ == "__main__": main()