python 实现的IP 存活扫描脚本
程序员文章站
2022-03-08 08:07:19
下载地址activeornot用于处理 oneforall 等子域名扫描工具的结果去重 + 主机存活扫描参数-f --file 指定存放ip或子域名的文件,默认 ip.txt-t --thread...
下载地址
用于处理 oneforall 等子域名扫描工具的结果去重 + 主机存活扫描
参数
-f --file 指定存放ip或子域名的文件,默认 ip.txt -t --thread 设置线程数,默认 50 python3 activeornot.py -f ip.txt -t 12
具体代码 activeornot.py
from threading import thread from queue import queue import requests from time import time import argparse headers = { "user-agent": "mozilla/5.0 (windows nt 10.0; win64; x64) applewebkit/537.36 (khtml, like gecko) chrome/83.0.4103.116 safari/537.36" } def ping(url, new_ip): url = url.strip() if (not url.startswith('http://')) and (not url.startswith('https://')): url = 'http://' + url try: req = requests.get(url, headers=headers, timeout=2) new_ip.put(url + ' -- ' + str(req.status_code)) print("%s 存活" % url) except: print("%s 不存活" % url) def new_list(file): with open(file, 'r') as f: new_ip = [] ip_list = f.readlines() for ip in ip_list: ip = ip.strip().replace('http://', '').replace('https://', '') if ip: if not (ip in new_ip): new_ip.append(ip) return new_ip def main(file, th): begin_time = time() new_ip = queue() ip_list = new_list(file) j = 0 length = len(ip_list) while j < length: threads = [] for i in range(th): t = thread(target=ping, args=(ip_list[j], new_ip)) t.start() threads.append(t) j += 1 if j == length: break for thread in threads: thread.join() with open('newip.txt', 'a+') as nf: while not new_ip.empty(): nf.write(new_ip.get()+'\n') end_time = time() run_time = end_time - begin_time print("总共耗时 %s 秒"% run_time) if __name__ == '__main__': parser = argparse.argumentparser(description='url active scan') parser.add_argument("-f", "--file", help="指定文件", default='ip.txt') parser.add_argument("-t", "--thread", help="设置线程", default=50) args = parser.parse_args() file = args.file th = args.thread main(file, th)
以上就是python 实现的ip 存活扫描脚本的详细内容,更多关于python ip存活扫描的资料请关注其它相关文章!