8、批量判断每个IP地址是否ping的通

来源:互联网 发布:java输出不换行语句 编辑:程序博客网 时间:2024/04/26 14:41
'''
   功能:通过调用os.system()方法调用cmd命令ping IP,将ping的输出内容存放到
         temp.txt的文件中,然后对该文件进行分析,最终得出结果。
   时间:2016-05-27
          
'''


#导入os模块
import os

#定义一个字典用于存放得出的结果
result_dict = {}

#打开IP.txt文件将需要ping的IP地址读取
fp = open(r'IP.txt')

#遍历IP.txt文件,对每一行进行解析处理
for line in fp.readlines():    
    #处理每行后面的空格
    IP = line.strip()    
    #拼接在CMD中使用的命令,并将中间结果存放在temp.txt文件中
    ping = "ping " + IP + r'>G:\workspace\temp.txt'
    #调用os.system()方法执行命令
    os.system(ping)

    #打开temp.txt文件
    f = open(r'G:\workspace\temp.txt')
    #遍历temp.txt文件,对每行进行解析
    for line in f.readlines():
        #判断行中是否含有'回复',如果含有则分析改行,否则不进行改行分析
        if line.find('回复') != -1:
            #将每行按照':'进行分隔
            result = line.split(':')
            #判断result[1],如果含有'TTL='则说明相机是通的,否则为不通
            if result[1].find('TTL=') != -1:
                result_dict[IP] = '通'
            else:
                result_dict[IP] = '不通'
    #关闭文件
    f.close()
    
#创建result.txt文件用于存放结果
fq = open(r'result.txt','w')
#遍历字典,并将结果保存到文件中
for key in result_dict.keys():
    fq.writelines(key + '\t' + result_dict[key] + '\n')

#关闭文件   
fp.close()

fq.close()


‘’‘

  IP.TXT文件内容:

192.168.1.1
192.168.1.102
192.168.1.107

’‘’




0 0
原创粉丝点击