zoukankan      html  css  js  c++  java
  • IP 存活扫描脚本

    • Github
      ActiveOrNot

    • 用于处理 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()+'
    ')
        end_time = time()
        run_time = end_time - begin_time
        print("总共耗时 %s 秒"% run_time)
    
    
    if __name__ == '__main__':
        parser = argparse.ArgumentParser(description='generate payload of gopher attack mysql')
        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)
    
    
    
  • 相关阅读:
    VS2005服务器资源管理器的bug ?
    今天新开张 ^_^
    SharePoint更改当前登录用户密码的WebPart
    开启SharePoint页面的Session功能
    创建强命名程序集的WebPart
    操作SSO对象模型时,异常“SSO_E_CANARY_VALIDATION_FAILURE”的处理
    关于页面加载时比较常用的几个公共事件
    活动目录概述
    SharePoint中利用客户端脚本获得当前登录用户信息
    SharePoint文档库中上下文菜单的菜单项
  • 原文地址:https://www.cnblogs.com/wjrblogs/p/13276021.html
Copyright © 2011-2022 走看看