Date created: Wednesday, July 20, 2016 2:31:49 PM. Last modified: Friday, January 13, 2017 11:42:31 AM
Example 1, Find Matching PoPs
Compare two AS numbers in PeeringDB for matching PoPs/locations:
$ python peering-db-example-1.py 51551 41695 Match: Telehouse London (Docklands North) Match: Telehouse London (Docklands East)
#!/usr/bin/python
import sys
import urllib2
import json
local_asn = sys.argv[1]
local_pops = {}
target_asn = sys.argv[2]
target_pops = {}
# Grab local net ID in peeringdb based on AS number,
# then grab the net object using the net ID
http_object = urllib2.urlopen("https://peeringdb.com/api/net?asn=%s" % local_asn)
json_dict = json.load(http_object)
local_net_id = json_dict["data"][0]["id"]
http_object = urllib2.urlopen("https://peeringdb.com/api/net/%s" % local_net_id)
json_dict = json.load(http_object)
# Iterate the net object and store the net facilities
for pop in json_dict["data"][0]["netfac_set"]:
local_pops[pop["fac_id"]] = pop["name"]
# Rinse and repeat for the target AS
http_object = urllib2.urlopen("https://peeringdb.com/api/net?asn=%s" % target_asn)
json_dict = json.load(http_object)
target_net_id = json_dict["data"][0]["id"]
http_object = urllib2.urlopen("https://peeringdb.com/api/net/%s" % target_net_id)
json_dict = json.load(http_object)
for pop in json_dict["data"][0]["netfac_set"]:
target_pops[pop["fac_id"]] = pop["name"]
# Create a set of the matches between PoP sites and display
for shared_pop in set(local_pops).intersection(target_pops):
print ("Match: %s" % local_pops[shared_pop])
Previous page: Openreach LAD File Search
Next page: Example 2, Public Peering using OpenConfig (JSON over gRPC)