idc.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. # -*- coding: utf-8 -*-
  2. """
  3. :copyright: ©2018 by IPIP.net
  4. """
  5. from .database import Reader
  6. class IDCInfo:
  7. country_name = ""
  8. region_name = ""
  9. city_name = ""
  10. owner_domain = ""
  11. isp_domain = ""
  12. idc = ""
  13. def __init__(self, **kwargs):
  14. self._map = kwargs
  15. for key in self._map:
  16. self.__dict__[key] = self._map[key]
  17. class IDC:
  18. db = None
  19. def __init__(self, name):
  20. self.db = Reader(name)
  21. def reload(self, name):
  22. try:
  23. db = Reader(name)
  24. self.db = db
  25. return True
  26. except:
  27. return False
  28. def find(self, addr, language):
  29. return self.db.find(addr, language)
  30. def find_map(self, addr, language):
  31. return self.db.find_map(addr, language)
  32. def find_info(self, addr, language):
  33. m = self.db.find_map(addr, language)
  34. if m is None:
  35. return None
  36. return IDCInfo(**m)
  37. def is_ipv4(self):
  38. return self.db.is_support_ipv4()
  39. def is_ipv6(self):
  40. return self.db.is_support_ipv6()
  41. def languages(self):
  42. return self.db.support_languages()
  43. def fields(self):
  44. return self.db.support_fields()
  45. def build_time(self):
  46. return self.db.build_utc_time()