From 5aa027ca8757fd3b31e5d860846839eeb31624b2 Mon Sep 17 00:00:00 2001 From: null <50769953+test502git@users.noreply.github.com> Date: Sat, 30 Oct 2021 11:15:22 +0800 Subject: [PATCH] Update IP_hosts_scan_multithreadingv2.0.py --- IP_hosts_scan_multithreadingv2.0.py | 37 +++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 10 deletions(-) diff --git a/IP_hosts_scan_multithreadingv2.0.py b/IP_hosts_scan_multithreadingv2.0.py index 3b8db15..656ff7f 100644 --- a/IP_hosts_scan_multithreadingv2.0.py +++ b/IP_hosts_scan_multithreadingv2.0.py @@ -1,6 +1,6 @@ # -*- coding: UTF-8 -*- -#Author:tangshpupu -#这是一个用于IP和域名碰撞匹配访问的小工具升级版 +#Author:Rivaill +#这是一个用于IP和域名碰撞匹配访问的小工具(多线程) import itertools import signal import threading @@ -18,27 +18,44 @@ def host_check(host_ip): schemes = ["http://","https://"] for scheme in schemes: url = scheme+ip + + headers = {'Host':host.strip(),'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36'} + headers2 = {'Host': ip.strip(), + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36'} try: r = requests.session() requests.packages.urllib3.disable_warnings() res = r.get(url,verify=False,headers=headers,timeout=30) + res2 = r.get(url, verify=False, headers=headers2, timeout=30) charset = chardet.detect(res.content)["encoding"] res.encoding = charset + title = "" + title2 = "" try: title = re.search('(.*)', res.text).group(1) #获取标题 + title2 = re.search('(.*)', res.text).group(1) # 获取标题 except Exception as ex: title = u"获取标题失败" info = u'%s\t%s -- %s 数据包大小:%d 标题:%s' % (ip,host,scheme+host,len(res.text),title) - if lock.acquire(): - try: - success_list.append(info) - pbar.echo(info) - pbar.update_suc() - open('hosts_ok-is.txt','a', encoding='utf-8').write(str(info)+'\n') - finally: - lock.release() + + + #print(len(res.text),len(res2.text),title2,title) + + + if len(res.text) != len(res2.text) and title!=title2: + if lock.acquire(): + try: + success_list.append(info) + pbar.echo(info) + pbar.update_suc() + open('ok-ism.txt','a', encoding='utf-8').write(str(info)+'\n') + finally: + lock.release() + else: + print('存在假碰撞,忽略,保存在ignored-req.txt中',info) + open('ignored-req.txt',encoding='utf-8').write(str(info)+'\n') except Exception as ex: if lock.acquire(): -- GitLab