import requests import logging class Ripe: def __init__(self): self.ranges = [] def search(self, target): r = requests.get("https://apps.db.ripe.net/db-web-ui/api/rest/fulltextsearch/select?facet=true&format=xml&hl=true&q=(" + target +")+AND+(object-type:inetnum)&start=0&wt=json", headers={"Accept": "application/json"}) data = r.json() self.parse(data) total = data['result']['numFound'] for i in range(10, total, 10): r = requests.get("https://apps.db.ripe.net/db-web-ui/api/rest/fulltextsearch/select?facet=true&format=xml&hl=true&q=(" + target +")+AND+(object-type:inetnum)&start=" + str(i) + "&wt=json", headers={"Accept": "application/json"}) self.parse(r.json()) return self.ranges def parse(self, data): for entry in data['result']['docs']: for field in entry['doc']['strs']: if field['str']['name'] == 'inetnum': self.ranges.append({'start': field['str']['value'].split('-')[0].strip(), 'end': field['str']['value'].split('-')[1].strip()})