# conding:utf8#Ping ip网段并将结果写入文件import subprocessimport threadingimport timeimport reip_num = 256List_Ping_result = []tm=time.strftime('%Y-%m-%d %H:%M:%s')ip_ture=open('HOSTname_Ping.txt','w',enCoding='utf8')ip_ture.write('以下为ip段Ping后结果:【ok:可以Ping通,error:Ping不通】'+'\n')ip_ture.write('序号 Ping结果 IP 时间'+'\n')count_True, count_False = 0, 0print('请输入要Ping网段的IP前三位,如‘192.168.0')ip_input= input('输入要Ping的网段:')print('Ping Processing, Please Wait...')class PingThread(threading.Thread): def __init__(self, str_ip, sleep_time, g_List_p_r): threading.Thread.__init__(self) self.sleep_time = sleep_time self.str_ip = str_ip self.List_p_r = g_List_p_r def run(self): time.sleep(self.sleep_time) ftp_sub = subprocess.Popen("Ping %s -n 3" % self.str_ip,stdin=subprocess.PIPE, stdout=subprocess.PIPE, shell=True) ret = ftp_sub.stdout.read() str_ret = ret.decode("gbk") ret_s = re.search("TTL", str_ret) if ret_s: self.List_p_r.append(('Ping 【ok】', self.str_ip)) else: self.List_p_r.append(('Ping 【error】', self.str_ip))def cmp_s(toupe_str): str_val = toupe_str[1] ret_group = re.match("\d*", str_val[::-1]) str_ret = ret_group.group()thread_ID = []for i in range(ip_num): thread_ID.append(0) thread_ID[i] = PingThread(ip_input+".%d" % i, int(i / 10), List_Ping_result) thread_ID[i].start()while True: if len(List_Ping_result) >= ip_num: List_Ping_result.sort(key=cmp_s) for i in List_Ping_result: print(i) ip_ture.write(str(count_True)+' '+str(' '.join(i))+' ' + tm + '\n') count_True +=1 breakprint(' *** 作结束')总结
以上是内存溢出为你收集整理的python 脚本查看ip地址是否可以ping通并将结果写文件全部内容,希望文章能够帮你解决python 脚本查看ip地址是否可以ping通并将结果写文件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)