def getRadarAs(asNumber):
radarResponse = requests.get("https://radar.qrator.net/api/prefixes/%s?tab_id=current&page=1" % asNumber).json()
totalPrefixes = int(radarResponse.get('total'))
initalPageSoup = bs4.BeautifulSoup(radarResponse.get('page'), "html.parser")
networkRawSet = set()
for a in initalPageSoup.find_all(text=re.compile(r"^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/\d+?$")):
networkRawSet.add("%s" % a)
startPage = 1
while len(networkRawSet) < totalPrefixes:
radarResponse = requests.get("https://radar.qrator.net/api/prefixes/%s?tab_id=current&page=%s" % (asNumber, startPage)).json()
pageSoup = bs4.BeautifulSoup(radarResponse.get('page'), "html.parser")
for a in pageSoup.find_all(text=re.compile(r"^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/\d+?$")):
networkRawSet.add("%s" % a)
startPage += 1
# Now minimize this shit
networkSet = netaddr.IPSet([netaddr.IPNetwork(item) for item in networkRawSet])
mergedNetworks = netaddr.cidr_merge(networkSet)
if not mergedNetworks:
print("Nothing found. Wrong AS number?")
else:
print("\n".join(["%s" % network for network in mergedNetworks]))
评论列表
文章目录