def parser(self, response): npage = re.search('<A href="(.*?)"><b>Next page</b></a>', response) if npage: for item in self.get_subdomains(response): if is_domain(item): self.subset.append(item) nurl = '{0}{1}'.format(self.site, npage.group(1)) r = http_request_get(nurl, custom_cookie=self.cookie) time.sleep(3) self.parser(r.text) else: for item in self.get_subdomains(response): if is_domain(item): self.subset.append(item)
def fetch_alexa_cn(self): """get subdomains from alexa.cn""" sign = self.get_sign_alexa_cn() if sign is None: raise Exception("sign_fetch_is_failed") else: (domain, sig, keyt) = sign pre_domain = self.domain.split('.')[0] url = 'http://www.alexa.cn/api_150710.php' payload = { 'url': domain, 'sig': sig, 'keyt': keyt, } r = http_request_post(url, payload=payload).text for sub in r.split('*')[-1:][0].split('__'): if sub.split(':')[0:1][0] == 'OTHER': break else: sub_name = sub.split(':')[0:1][0] sub_name = ''.join((sub_name.split(pre_domain)[0], domain)) if is_domain(sub_name): self.subset.append(sub_name)
def fetch_alexa_cn(self): """get subdomains from alexa.cn""" sign = self.get_sign_alexa_cn() if sign is None: raise Exception("sign_fetch_is_failed") else: (domain,sig,keyt) = sign pre_domain = self.domain.split('.')[0] url = 'http://www.alexa.cn/api_150710.php' payload = { 'url': domain, 'sig': sig, 'keyt': keyt, } r = http_request_post(url, payload=payload).text for sub in r.split('*')[-1:][0].split('__'): if sub.split(':')[0:1][0] == 'OTHER': break else: sub_name = sub.split(':')[0:1][0] sub_name = ''.join((sub_name.split(pre_domain)[0], domain)) if is_domain(sub_name): self.subset.append(sub_name)
def fetch_chinaz(self): """get subdomains from alexa.chinaz.com""" url = 'http://alexa.chinaz.com/?domain={0}'.format(self.domain) r = http_request_get(url).text subs = re.compile(r'(?<="\>\r\n<li>).*?(?=</li>)') result = subs.findall(r) for sub in result: if is_domain(sub): self.subset.append(sub)
def fetch_chinaz(self): """get subdomains from alexa.chinaz.com""" url = 'http://alexa.chinaz.com/?domain={0}'.format(self.domain) r = http_request_get(url).content subs = re.compile(r'(?<="\>\r\n<li>).*?(?=</li>)') result = subs.findall(r) for sub in result: if is_domain(sub): self.subset.append(sub)
def run(self): url = self.site + self.domain try: r = http_requests_get(url=url) results = re.findall('</TD>\n <TD>(.*?)</TD>\n <TD><A', r.text, re.S) for result in results: if is_domain(result): self.result.append(result) return list(set(self.result)) except Exception, e: return self.result
def fetch_ip138(self): """get subdomains from ip138.com""" url = 'http://site.ip138.com/{0}/domain.htm'.format(self.domain) r = http_request_get(url).content regx = r'<a.*>(.*\.%s)</a>' % self.domain # subs = re.compile(r'(?<="\>\r\n<li>).*?(?=</li>)') result = re.findall(regx, r) for sub in result: # print sub if is_domain(sub): self.subset.append(sub)
def run(self): try: url = "{0}/searchApi/v2/domain/report/?domain={1}".format(self.website, self.domain) # content = curl_get_content(url).get('resp') content = http_request_get(url).content for sub in json.loads(content).get('subdomains'): if is_domain(sub): self.subset.append(sub) return list(set(self.subset)) except Exception as e: logging.info(str(e)) return self.subset
def run(self): try: url = "{0}/searchApi/v2/domain/report/?domain={1}".format( self.website, self.domain) # content = curl_get_content(url).get('resp') content = http_request_get(url).text for sub in json.loads(content).get('subdomains'): if is_domain(sub): self.subset.append(sub) return list(set(self.subset)) except Exception as e: return self.subset
def run(self): print("[*]正在通过ip138查询域名[*]") url = self.site+self.domain+"/domain.htm" try: res = http_requests_get(url = url) #发起请求 r1 = re.findall('target="_blank"\>(.*?)\</a\>\</p\>', res) #return r1 for result in r1: #循环写入 if is_domain(result): # 判断是否为域名 self.result.append(result) # 将结果添加到列表中 print_try("ip138查询完成,共" + str(len(self.result)) + "个域名") return list(set(self.result)) #去重 except Exception as e: return self.result
def run(self): try: url = "{0}/getData.php?e=subdomains_container&q={1}&t=0&rt=10&p=1".format(self.website, self.domain) # content = curl_get_content(url).get('resp') content = http_request_get(url).content _regex = re.compile(r'(?<=<a href\="domain.php\?q=).*?(?=">)') for sub in _regex.findall(content): if is_domain(sub): self.subset.append(sub) return list(set(self.subset)) except Exception as e: logging.info(str(e)) return self.subset
def run(self): try: url = "{0}/getData.php?e=subdomains_container&q={1}&t=0&rt=10&p=1".format( self.website, self.domain) # content = curl_get_content(url).get('resp') content = http_request_get(url).text _regex = re.compile(r'(?<=<a href\="domain.php\?q=).*?(?=">)') for sub in _regex.findall(content): if is_domain(sub): self.subset.append(sub) return list(set(self.subset)) except Exception as e: return self.subset
def run(self): payload = { 'domain': self.domain, 'b2': 1, 'b3': 1, 'b4': 1, } try: r = http_requests_post(self.site, payload) results = re.findall('value="http://(.*?)"><input', r.text) for result in results: if is_domain(result): self.result.append(result) return list(set(self.result)) except Exception, e: return self.result
def run(self): print("[*]正在通过yumingco查询域名[*]") url = self.site + self.domain try: res = http_requests_get(url=url) #发起请求 r1 = re.findall('main:(.*)\<br\>', res) r = re.findall('(.*?)\<br\>', "".join(r1)) #return res.text #return r for result in r: #循环写入 if is_domain(result): # 判断是否为域名 self.result.append(result) # 将结果添加到列表中 print_try("yumingco查询完成,共" + str(len(self.result)) + "个域名") return list(set(self.result)) #去重 except Exception as e: return self.result
def run(self): try: payload = {'b2': 1, 'b3': 1, 'b4': 1, 'domain': self.domain} r = http_request_post(self.url, payload=payload).text subs = re.compile(r'(?<=value\=\"http://).*?(?=\"><input)') for item in subs.findall(r): if is_domain(item): self.subset.append(item) return list(set(self.subset)) except Exception as e: return self.subset # ilinks = Ilinks('aliyun.com') # ilinks.run() # print(ilinks.subset)
def run(self): try: # 此auth 需要自行申请,每个auth 每天有查询次数限制 auth=("*****@*****.**","d160262241ccf53222d42edc6883c129") payload={"query":"*.%s" % self.domain} url = "https://api.passivetotal.org/v2/enrichment/subdomains" response = requests.get(url,auth=auth,params=payload) for sub in json.loads(response.content)['subdomains']: sub="%s.%s" %(sub,self.domain) if is_domain(sub): self.subset.append(sub) return list(set(self.subset)) except Exception as e: logging.info(str(e)) return self.subset
def run(self): try: # 此auth 需要自行申请,每个auth 每天有查询次数限制 auth = ("*****@*****.**", "d160262241ccf53222d42edc6883c129") payload = {"query": "*.%s" % self.domain} url = "https://api.passivetotal.org/v2/enrichment/subdomains" response = requests.get(url, auth=auth, params=payload) for sub in json.loads(response.content)['subdomains']: sub = "%s.%s" % (sub, self.domain) if is_domain(sub): self.subset.append(sub) return list(set(self.subset)) except Exception as e: logging.info(str(e)) return self.subset
def run(self): try: timestemp = time.time() url = "{0}?0.{1}&callback=&k={2}&page=1&order=default&sort=desc&action=moreson&_={3}&verify={4}".format( self.url, timestemp, self.domain, timestemp, self.verify) result = json.loads(req.get(url).content) if result.get('status') == '1': for item in result.get('data'): if is_domain(item.get('domain')): self.subset.append(item.get('domain')) return list(set(self.subset)) elif result.get('status') == 3: print('get verify_code():', self.verify) self.verify_code() self.run() except Exception as e: logging.info(str(e)) return self.subset
def run(self): try: url = self.site r = http_requsets_post(url=url, payload={ 'domain': self.domain, 'b2': '1', 'b3': '1', 'b4': '1' }) # self.result.append(r.content) results = re.findall('value="http://(.*?)"><input type=hidden', r.content) for result in results: if is_domain(result): self.result.append(result) return list(set(self.result)) # return self.result except Exception, e: return self.result
def run(self): try: timestemp = time.time() url = "{0}?0.{1}&callback=&k={2}&page=1&order=default&sort=desc&action=moreson&_={3}&verify={4}".format( self.url, timestemp, self.domain, timestemp, self.verify) result = json.loads(req.get(url).content) if result.get('status') == '1': for item in result.get('data'): if is_domain(item.get('domain')): self.subset.append(item.get('domain')) elif result.get('status') == 3: logging.info("chaxun.la api block you ip...") logging.info("input you verify_code in http://subdomain.chaxun.la/wuyun.org/") # print('get verify_code():', self.verify) # self.verify_code() # self.run() return list(set(self.subset)) except Exception as e: logging.info(str(e)) return self.subset
def run(self): try: payload = { 'b2': 1, 'b3': 1, 'b4': 1, 'domain': self.domain } r = http_request_post(self.url,payload=payload).text subs = re.compile(r'(?<=value\=\"http://).*?(?=\"><input)') for item in subs.findall(r): if is_domain(item): self.subset.append(item) return list(set(self.subset)) except Exception as e: logging.info(str(e)) return self.subset # ilinks = Ilinks('aliyun.com') # ilinks.run() # print(ilinks.subset)