改脚本之dbscaner

默认的DBscaner只是用了ipy模块支持一个段的解析,但是我想让他加载脚本进行检测

所以,直接看

def __init__(self, target, thread):
        self.target = target
        self.thread = thread
        self.ips    = []
        self.ports  = []
        self.time   = time.time()
        self.get_ip()
        self.get_port()
        self.check = check()
    
    def get_ip(self):
        #获取待扫描地址段
        for ip in IPy.IP(self.target):
            self.ips.append(str(ip))

这里用ips数组存储了ip,那么改掉这里,直接for循环我们的传进来的target

    def get_ip(self):
        # 获取待扫描地址段
        for ip in self.target:
            self.ips.append(str(ip))

那么,我们传入的时候,工具是用 argparse模块解析参数,但是我们是想要扫一个ip文件,所以,改掉

def main():
    banner()
    parser = argparse.ArgumentParser(description='Example: python {} 192.168.1.0/24'.format(sys.argv[0]))
    parser.add_argument('target', help=u'192.168.1.0/24')
    parser.add_argument('-t', type=int, default=50, dest='thread', help=u'线程数(默认50)')
    args   = parser.parse_args()
    myscan = DBScanner(args.target, args.thread)
    myscan.run()

加一个函数

def read_file():
    targets = []
    with open('1.txt', 'r') as f:
        ips = f.readlines()
        for ip in ips:
            target = ip.strip('\n')
            if target not in targets:
                targets.append(target)
    return targets
def main():
    banner()
    target = read_file()
    thread = 50
    myscan = DBScanner(target, thread)
    myscan.run()

这里用读文件的方式,遍历后,

去重空格

target = ip.strip('\n')

去重

if target not in targets:
   targets.append(target)

然后,自定义线程吧,无所谓

thread = 50

ok,就可以开始跑了

猜你喜欢

转载自www.cnblogs.com/xm17/p/9782052.html