#!/usr/bin/python # # whois.py - Classes for accessing WHOIS data from various registry sources # # Copyright 2016 Todd Shadburn # # Licensed under the GNU GPL version 2 # import urllib2 import json class Whois(object): def __init__(self, *args, **kwargs): self.url = None if 'url' in kwargs: self.url = kwargs['url'] return class ArinWhois(Whois): def __init__(self, *args, **kwargs): self.url = 'http://whois.arin.net/rest' if 'url' in kwargs: self.url = kwargs['url'] return def _make_ip_request(self, ipaddr): hdrs = { 'Accept': 'application/json', } url = '%s/ip/%s' % (self.url, ipaddr) req = urllib2.Request(url, None, hdrs) res = urllib2.urlopen(req) return json.loads(res.read()) def get_name_from_ip(self, ipaddr): data = self._make_ip_request(ipaddr) if not data: return None return data['net']['name']['$'] def get_cidr_from_ip(self, ipaddr): data = self._make_ip_request(ipaddr) if not data: return None nb = data['net']['netBlocks']['netBlock'] return '%s/%s' % (nb['startAddress']['$'], nb['cidrLength']['$'])