def work(self, site): _, hostname, _ = get_host(site) conn = utils.http_req(site) item = { "site": site, "hostname": hostname, "ip":"", "title": utils.get_title(conn.content), "status": conn.status_code, "headers": utils.get_headers(conn), "http_server": conn.headers.get("Server", ""), "body_length": len(conn.content), "finger": [], "favicon": fetch_favicon(site) } domain_parsed = utils.domain_parsed(hostname) if domain_parsed: item["fld"] = domain_parsed["fld"] ips = utils.get_ip(hostname) if ips: item["ip"] = ips[0] else: item["ip"] = hostname self.site_info_list.append(item) if conn.status_code == 301 or conn.status_code == 302: url_302 = urljoin(site, conn.headers.get("Location", "")) if url_302 != site and url_302.startswith(site): self.work(url_302)
def work(self, domain): try: self.resolver_map[domain] = utils.get_ip(domain) except Exception as e: logger.exception(e) self.semaphore.release()
def not_found_domain_ips(self): if self._not_found_domain_ips is None: fake_domain = "at"+utils.random_choices(4) + "." + self.base_domain self._not_found_domain_ips = utils.get_ip(fake_domain) if self._not_found_domain_ips: logger.info("not_found_domain_ips {} {}".format(fake_domain, self._not_found_domain_ips)) return self._not_found_domain_ips
def verify(): valid = False ip = get_ip(request) servers = ProvServer.query.all() for server in servers: ips = server.ips.split(',') if ip in ips: server.test_passed = True server.date_of_test = datetime.now() db.session.add(server) valid = True db.session.commit() return ip + " " + unicode(valid)
def work(self, domain): curr_domain = domain if isinstance(domain, dict): curr_domain = domain.get("domain") elif isinstance(domain, DomainInfo): curr_domain = domain.domain if not curr_domain: return if curr_domain in self.resolver_map: return self.resolver_map[curr_domain] = utils.get_ip(curr_domain)
def build_single_domain_info(self, domain): _type = "A" cname = utils.get_cname(domain) if cname: _type = 'CNAME' ips = utils.get_ip(domain) if _type == "A": record = ips else: record = cname if not ips: return item = {"domain": domain, "type": _type, "record": record, "ips": ips} return modules.DomainInfo(**item)
def work(self, target): domain = target if hasattr(target, "domain"): domain = target.domain ips = utils.get_ip(domain) if not ips: return cnames = utils.get_cname(domain, False) info = {"domain": domain, "type": "A", "record": ips, "ips": ips} if cnames: info["type"] = 'CNAME' info["record"] = cnames self.domain_info_list.append(modules.DomainInfo(**info))