ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python实现ping命令语音播报联通性V1.0

2021-10-30 17:31:37  阅读:176  来源: 互联网

标签:info python ip random ping 192.168 V1.0 loop


#稍微正式一点点的版本

import os import pyttsx3 import random import time #定义一个函数,这个函数要能够随机产生一个ip #方法可手动输入,true表示产生随机ip,false表示手动输入,默认随机 def random_ip(self_ip,ip_more=True): #如果ip_more为true,产生随机ip if ip_more == True: return ""+random.randrange(1,254)+"."+random.randrange(1,254)+"."+random.randrange(1,254)+"."+random.randrange(1,254)+"" else: return self_ip #除以上方法外,还可以固定D类IP地址,如192.168.的前缀,后面两位进行随机的方法,进行局域网测试,也可以利用循环进行局域网精准完全测试。 #注意:以上方法本例暂未使用,留待有缘人自行思考,本例需要用到的模块请使用pip install 模块名进行安装,pip具体安装方法,可百度 #定义一个语音播放方法 def voice_ping(who_ip): engine = pyttsx3.init() engine.say(who_ip) engine.runAndWait() #ip处理函数,返回cmd命令行的信息,对命令行的信息进行截取或加工 def str_ip(command): #传递命令给操作系统,命令行,并返回信息 output = os.popen(command) #获取的信息是list信息 info = output.readlines() #对list信息进行输出 for line in info: print(line) #进行信息截取,2表示列表数组第二个元素,[3,16]表示截取数组下标2的值的第3到16个字符 print(info[1][3:16]) #测试截取的数据是不是L,如果是,表示ping成功 print(info[2][-5]) #对ping成功的数据进行加工判断并要提醒的数据,将其返回,最终要交给voice_ping方法进行语音合成输出 if info[2][-5]=="L": return info[2]+"提示:"+info[2][3:16]+"主机在线" #如果该语句用于后续随机ip中,则建议直接掠过【因为大量随机产生的ip是不可能在线的,否则一直报会烦死人】 return "无法访问目标主机"+info[1][8:21] #定义一个测试方法 #手动输入ip测试 def test(input_ip): #获取命令行的信息进行判断 #暂时省略 voice_ping(str_ip(input_ip)) #实现,此为之前测试 #for i in ["ping www.baidu.com","ping 192.168.0.1","ping 192.168.0.101 -i 1 -n 1","ping 192.168.0.102 -i 1 -n 1","ping 192.168.0.103 -i 1 -n 1"]: # test(i) #os.system("arp -a > arp.txt") #此为本次新增 #实现while循环 def loop_ip(ip_loop,ip_table): #当ip_loop==1时,每隔一段时间进行,缺点,占用资源,不过这么点程序,无所谓了 if ip_loop == 1: while 1: #当ip_loop==True时,表示定时播报 #逐个取命令,传递给test for line in ip_table: test(line) #完成一次循环后,进行等待一定时间,继续执行,这里可根据需要填写 time.sleep(5) #监听某原因时退出程序(省略) #否则当ip_loop==False时,表示只执行一次 else: for i in ip_loop:#逐个取命令,传递给test test(i) #测试 loop_ip(1,["ping www.baidu.com","ping 192.168.0.1","ping 192.168.0.101 -i 1 -n 1","ping 192.168.0.102 -i 1 -n 1","ping 192.168.0.103 -i 1 -n 1"])

 

标签:info,python,ip,random,ping,192.168,V1.0,loop
来源: https://www.cnblogs.com/ciscolee/p/15486610.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有