bgp- research & experiments with border gateway protocol |
git clone git://git.acid.vegas/bgp.git |
Log | Files | Refs | Archive | README |
bgp.py (802B)
1 import pybgpstream 2 from collections import defaultdict 3 4 def fetch_asn_ip_mappings(): 5 asn_ip_mappings = defaultdict(list) 6 stream = pybgpstream.BGPStream( 7 project="ris-live", 8 filter="collector rrc00", 9 ) 10 for rec in stream: 11 for elem in rec: 12 if elem.type == "A": 13 origin_asn = elem.fields["as-path"].split()[-1] 14 prefix = elem.fields["prefix"] 15 if prefix not in asn_ip_mappings[origin_asn]: 16 asn_ip_mappings[origin_asn].append(prefix) 17 print(f'{origin_asn} - {prefix}') 18 return asn_ip_mappings 19 20 if __name__ == "__main__": 21 mappings = fetch_asn_ip_mappings() 22 for asn, prefixes in mappings.items(): 23 print(f"ASN: {asn}, Prefixes: {', '.join(prefixes)}") 24 25 26