python 實(shí)現(xiàn)的IP 存活掃描腳本
ActiveOrNot
用于處理 oneforall 等子域名掃描工具的結(jié)果去重 + 主機(jī)存活掃描
參數(shù)-f --file 指定存放ip或子域名的文件,默認(rèn) ip.txt-t --thread 設(shè)置線程數(shù),默認(rèn) 50python3 ActiveOrNot.py -f ip.txt -t 12具體代碼 ActiveOrNot.py
from threading import Threadfrom queue import Queueimport requestsfrom time import timeimport argparseheaders = { '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_ipdef 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='設(shè)置線程', default=50) args = parser.parse_args() file = args.file th = args.thread main(file, th)
以上就是python 實(shí)現(xiàn)的IP 存活掃描腳本的詳細(xì)內(nèi)容,更多關(guān)于python ip存活掃描的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. java實(shí)現(xiàn)圖形化界面計(jì)算器2. javascript設(shè)計(jì)模式 ? 建造者模式原理與應(yīng)用實(shí)例分析3. Python使用oslo.vmware管理ESXI虛擬機(jī)的示例參考4. IntelliJ Idea2017如何修改緩存文件的路徑5. IDEA的Mybatis Generator駝峰配置問題6. 解決idea中yml文件不識別的問題7. IntelliJ IDEA設(shè)置條件斷點(diǎn)的方法步驟8. IIS Express 取代 ASP.NET Development Server的配置方法9. 一篇文章帶你了解JavaScript-對象10. Spring-Richclient 0.1.0 發(fā)布
