__init__.py 1.1 KB

12345678910111213141516171819202122
  1. import requests
  2. import logging
  3. class Ripe:
  4. def __init__(self):
  5. self.ranges = []
  6. def search(self, target):
  7. 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"})
  8. data = r.json()
  9. total = data['result']['numFound']
  10. for i in range(0, total, 10):
  11. 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"})
  12. self.parse(r.json())
  13. return self.ranges
  14. def parse(self, data):
  15. for entry in data['result']['docs']:
  16. for field in entry['doc']['strs']:
  17. if field['str']['name'] == 'inetnum':
  18. self.ranges.append({'start': field['str']['value'].split('-')[0].strip(), 'end': field['str']['value'].split('-')[1].strip()})