加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python模块之sys和subprocess以及编写简单的主机扫描脚本

发布时间:2020-12-16 23:57:54 所属栏目:Python 来源:网络整理
导读:sys.exit(n)? 作用:执行到主程序末尾,解释器自动退出,但是如果需要中途退出程序,可以调用sys.exit函数,带有一个可选的整数参数返回给调用它的程序,表示你可以在主程序中捕获对sys.exit的调用。(0是正常退出,其他为异常) sys.path? ?作用:获取指定模

sys.exit(n)? 作用:执行到主程序末尾,解释器自动退出,但是如果需要中途退出程序,可以调用sys.exit函数,带有一个可选的整数参数返回给调用它的程序,表示你可以在主程序中捕获对sys.exit的调用。(0是正常退出,其他为异常)

sys.path? ?作用:获取指定模块搜索路径的字符串集合

  sys.platform: 获取当前系统平台

  sys.argv??在外部向程序内部传递参数

subprocess.run()? ?作用:运行命令,返回命令执行的结果(python3.5以后的版本才会有这个命令)

  subprocess.call()? ?作用:执行命令,返回命令的状态,0或者非0,0表示执行成功

  subprocess.getstatusoutput()? ??作用:接收字符串形式的命令,返回元组形式,第一个元素是执行状态,第二个是命令结果

  subprocess.check_output()? ? ?作用:执行命令,并且返回二进制结果

3.简单的主机扫描脚本编写

2.subprocess模块 

r1=subprocess.getstatusoutput(=subprocess.getstatusoutput(=subprocess.getstatusoutput( r1=subprocess.check_output(,shell=(r1)

3.简单的主机扫描脚本编写

ping(net,start=50,end=200,n=1,w=10 i range(start,end+1=net++=nul%(ip,n,w) nul 不显示ping返回的信息 (ip,(,

<span style="color: #008000">#<span style="color: #008000">print(sys.argv)<span style="color: #008000">

<span style="color: #008000">print(len(sys.argv))

<span style="color: #0000ff">if len(sys.argv) <span style="color: #0000ff">not <span style="color: #0000ff">in [2,4,6<span style="color: #000000">]:
<span style="color: #0000ff">print(<span style="color: #800000">"<span style="color: #800000">参数输入错误!<span style="color: #800000">"<span style="color: #000000">)
<span style="color: #0000ff">print(<span style="color: #800000">"<span style="color: #800000">运行示例:<span style="color: #800000">"<span style="color: #000000">)
<span style="color: #0000ff">print(<span style="color: #800000">"<span style="color: #800000">test01.py 123.125.114<span style="color: #800000">"<span style="color: #000000">)
<span style="color: #0000ff">print(<span style="color: #800000">"<span style="color: #800000">test01.py 123.125.114 30 50<span style="color: #800000">"<span style="color: #000000">)
<span style="color: #0000ff">print(<span style="color: #800000">"<span style="color: #800000">test01.py 123.125.114 30 50 4,5<span style="color: #800000">"<span style="color: #000000">)
<span style="color: #0000ff">print(<span style="color: #800000">"<span style="color: #800000">语法:test01.py net startip,endip,count timeout<span style="color: #800000">"<span style="color: #000000">)
<span style="color: #0000ff">elif len(sys.argv)==2<span style="color: #000000">:
net=sys.argv[1<span style="color: #000000">]
ping(net)
<span style="color: #0000ff">elif len(sys.argv)==4<span style="color: #000000">:
net=sys.argv[1<span style="color: #000000">]
ping(net,start=int(sys.argv[2]),end=int(sys.argv[3<span style="color: #000000">]))
<span style="color: #0000ff">else<span style="color: #000000">:
net=sys.argv[1<span style="color: #000000">]
ping(net,end=int(sys.argv[3]),n=int(sys.argv[4]),w=int(sys.argv[5]))

运行效果如下:

4.用subprocess模块编写

代码如下:

ping(net,start=100,n=2,w=5 i range(start,end+1=net++=%(ip,)[subprocess.call(command,stdout=open(,))]) t1= len(sys.argv)!=2((( len(sys.argv)==2=sys.argv[1=(%(t2-t1))

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读