Esempio n. 1
0
    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)
Esempio n. 2
0
    def work(self, domain):
        try:
            self.resolver_map[domain] = utils.get_ip(domain)
        except Exception as e:
            logger.exception(e)

        self.semaphore.release()
Esempio n. 3
0
    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
Esempio n. 4
0
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)
Esempio n. 5
0
    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)
Esempio n. 6
0
    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)
Esempio n. 7
0
    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))