zoukankan      html  css  js  c++  java
  • 从Excel获取整列内容进行批量扫描

    实习工作原因,需要测试excel表里面ip地址是否存在漏洞,扫了一眼,呕,四五百个IP,光是挨个进行访问,都是一个浩大的工程,所以准备开始摸鱼认真工作

    思路是:excel按列提取->将IP按行存储在txt文件中->对TXT中的IP进行批量扫描操作

    excel按列提取

    参考自:https://www.cnblogs.com/xiao987334176/p/11240086.html

    excel大概长这样:

    1.png

    使用python xlrd库,打开excel文件,创建一个workbook对象,book对象也就是我本地的wordexcel.xlsx

    import xlrd
    filename='workexcel.xlsx'
    rbook=xlrd.open_workbook(filename)

    选择第一个工作簿

    rsheet=rbook.sheet_by_index(0)

    我们遍历每一行,IP地址所在列下标为15,取其值

        for row in rsheet.get_rows():
            ips=row[15].value.split()

    使用split()是为了防止有一个单元格中存在多行IP的情况

    同时使用python集合来存储,防止重复:

        ipset=set()
        for row in rsheet.get_rows():
            ips=row[15].value.split()
            for ip in ips:
                if ip!="IP地址":
                # print("="*30)
                    ipset.add(ip)

    接着是保存ip的集合,这个比较简单,就直接给代码了:

    def SaveSet(ipset):
        filename='test.txt'
        try:
            with open(filename, 'w') as f:
                while len(ipset) != 0:
                    f.write(ipset.pop() + '
    ')
        except Exception as e:
            print(e)
            pass
        return

    所有代码为:

    import xlrd
    
    def SaveSet(ipset):
        filename='test.txt'
        try:
            with open(filename, 'w') as f:
                while len(ipset) != 0:
                    f.write(ipset.pop() + '
    ')
        except Exception as e:
            print(e)
            pass
        return
    
    def GetData():
        filename='workexcel.xlsx'
        rbook=xlrd.open_workbook(filename)
        rsheet=rbook.sheet_by_index(0)
        ipset=set()
        for row in rsheet.get_rows():
            ips=row[15].value.split()
            for ip in ips:
                if ip!="IP地址":
                # print("="*30)
                    ipset.add(ip)
        SaveSet(ipset)
    
    def main():
        GetData()
    
    if __name__=='__main__':
        main()

    运行之后成功获取excel中的所有IP,接下来就能进行快乐批量啦~~

     

  • 相关阅读:
    java中split函数参数特殊字符的处理(转义),如:"." 、"\"、"|"
    Javascript编程风格
    HTTP 错误 500.0的解决方法。
    在WCF中进行大数据量传输
    “您已使用临时配置文件登陆”的解决方法
    关于命令行执行Migrations
    转一篇关于部署的文章
    MSDeploy使用备忘
    不可征服
    git初始化项目
  • 原文地址:https://www.cnblogs.com/Cl0ud/p/13402031.html
Copyright © 2011-2022 走看看