• python编写banner获取的常用模块


    模块的概念:
    模块也叫库,每个模块中都内置了大量的功能和函数、类和变量。它就像是积木,可以根据需要进行调用组合。
    模块就是程序,每个模块就是一个后缀为.py的Python程序。
    Python的模块分为标准模块和第三方模块,标准模块是Python内置的,第三方模块则需要安装之后才能使用。
    可以痛苦help命令了解一个模块的基本帮助信息,如:help('sys')
    无论标准模块还是第三方模块,都需要先导入之后才可以使用。
    在程序中应只导入必须的模块,以减少运行压力。
    导入模块的方法:
    直接调用模块:import 模块名
    从模块中调用某个函数:from 模块名 import 函数名
    import os ,应采用“模块名,方法名”的形式使用模块中的方法,如os,system()
    from os import * ,可以直接使用system()方法,无需加上模块名作为前缀。(不推荐使用,因为增加运行压力。)

    sys模块
    sys是一个标准模块,与Python解释器密切相关。
    (1)sys.argv
    sys.argv是一个变量,专门用来向Pyhton解释器传递参数,类似于Shell脚本编程中的位置变量。
    sys.argv的第一个参数永远是脚本的名字
    import sys
    print "脚本文件是:",,sys.argv[0]
    print "用户输入的参数数量是:",len(sys.argv)-1
    print "所有的参数是:",sys.argv
    print "用户输入的第一个参数是:",sysargv[1]
    print "用户输入的第二个参数是:",sysargv[2]
    print "用户输入的第三个参数是:",sysargv[3]

    root@kali:~# python test.py hello python liujizhou
    脚本文件是: test.py
    用户输入的参数数量是: 3
    所有的参数是: ['test.py', 'hello', 'python', 'liujizhou']
    用户输入的第一个参数是: hello
    用户输入的第二个参数是: python
    用户输入的第三个参数是: liujizhou
    (2)sys.exit()
    sys.exit()是一个方法,作用是退出当前程序。
    sys.exit(),退出当前程序,并返回SystemExit异常
    sys.exit(0),正常退出
    sts.exit("程序退出"),显示一段提示信息
    import sys
    if len(sys.argv) !=2:
    print "正确使用方法:" + sys.argv[0] + " IP列表文件"
    print "例如:./test.py /root/ip.txt"
    sys.exit()
    //这个文件的主要作用就是用于至少输入两个参数

    os模块
    os模块提供了访问操作系统服务的功能。
    它最常用的是os.system()方法,可以在Python中是用操作系统命令
    >>> os.system("ls /root")
    公共 视频 文档 音乐 getbannet.py liu.txt vulhub-master
    模板 图片 下载 桌面 go test.py vulhub-master.zip
    0
    os.path.isfile()方法,判断指定的对象是否为文件,返回True或者False。
    >>> os.path.isfile("/root/liu.txt")
    True
    >>> os.path.isfile("/root/go")
    False
    os.path.isdir()方法,判断指定对象是否为目录。
    os.path.exists()方法,判断指定对象是否存在。
    >>> os.path.exists("/root/liu.txt")
    True
    >>> os.path.exists("/root/")
    True
    >>> os.path.exists("/root/1.txt")
    False

    多线程:
    ctrl+z 后台执行
    jobs -l查看后台
    kill -9 ID 杀死进程
    写入多IP循环文件
    >>> f=open("/root/ip.txt","w")
    >>> for i in range(1,255):
    ... ip="192.168.80."+str(i)
    ... f.write(ip+" ")
    ...
    >>> f.close()
    进程是线程的容器,线程是操作系统调度和分配处理器时间的基本单位,负责执行包含在进程地址空间中的代码。
    当进程被创建时,操作系统会自动为之创建一个线程,称为主线程,主线程再根据需要动态创建其它子线程。
    通过threading模块中的Thread()类可以创建和管理线程对象。
    通常都是通过多线程的方式来执行一个函数,从而使得该函数中的代码可以并发执行。
    t=threading.Thread(target=要执行的函数,args=(向函数传递的参数))
    t.start()

    optparse模块
    利用该模块可以设置选项,通过选项向脚本传递所需的参数
    from optparse import OptionParser
    usage="usage: %prog -f <filename> -i <ip address>"
    编写帮助信息 %prog是自动把当前的文件名替换上去
    parser=OptionParser(usage=usage)
    parser.add_option("-f","--file",type="string",dest="filename",help="IP address file")
    parser.add_option("-i","--ip",type="string",dest="address",help="IP address")
    (options,args)=parser.parse_args()
    print options.filename
    print options.address
    第一行,导入optparse模块中的类OptionParser。
    第二行,将类实例化成对象。
    第三行,利用add_option()方法添加选项。-f和--file分别表示长短选项名,长选项可以省略。type指定了参数类型,默认为string,dest指定将参数赋值给哪个变量。
    第四行,利用add_option()方法添加选项-i和--ip。
    第五行,利用parse_args()方法来获取定义的选项和参数,可以视作一种固定用法。
    parse_args()方法返回两个值,其中options对象保存了所传递进来的参数值
    第六行、七行,通过options.filename和options.address的方式调用参数值。

  • 相关阅读:
    数字基本数据类型范围比较
    java中float和double的区别
    ASP.NET中javascript与c#互相访问
    Javascript技术之详尽解析event对象
    Java基础-Java中的Calendar和Date类
    逻辑运算符
    JS获取当前时间
    几秒后刷新页面
    【LiteOS】LiteOS任务篇源码分析删除任务函数
    POJ 2385 Apple Catching (DP)
  • 原文地址:https://www.cnblogs.com/liujizhou/p/11924806.html
Copyright © 2020-2023  润新知