def _setup(self, url):
     if Checker.contain_illegal_char(url):
         raise Exception("illegal characters in urls")
     self.meta = {
         'url': url,
         'code': -1,  # http code
         'size': -1,
         'duration': 0,
     }
 def query(self, hostname):
     self._setup()
     self.meta['hostname'] = hostname
     if Checker.contain_illegal_char(hostname):
         return self.meta
     else:
         self._query_ip_api(hostname, self.meta)
         Logger.debug("IPInfo.query() with %s" % hostname)
         Logger.debug(repr(self.meta))
         return self.meta