判断局域网中的IP是否能拼通

时间:2022-05-17 18:08:09

首先需要在源代码目录下建立3个txt文件,并分别命名为host.txt,ip_True.txt,ip_False.txt,并在host.txt中写入要ping 的IP地址。

以下是源码:

#!/usr/bin/python

#-*- coding:utf-8 -*-
'''
#判断文件中的ip是否能ping通,并且将通与不通的ip分别写到两个文件中
#文件中的ip一行一个
'''
import time,os
start_Time=int(time.time()) #记录开始时间
def ping_Test():
    ips=open('host.txt','r')
    ip_True = open('ip_True.txt','w')
    ip_False = open('ip_False.txt','w')
    count_True,count_False=0,0
    for ip in ips.readlines():
        ip = ip.replace('\n','')  #替换掉换行符
        return1=os.system('ping -n 1 -w 1 %s'%ip) #每个ip ping1次,等待时间为1s
        if return1:
            print 'ping %s is fail'%ip
            ip_False.write(ip + '\n')  #把ping不通的写到ip_False.txt中
            count_False += 1
        else:
            print 'ping %s is ok'%ip
            ip_True.write(ip + '\n')  #把ping通的ip写到ip_True.txt中
            count_True += 1
    ip_True.close()
    ip_False.close()
    ips.close()
    end_Time = int(time.time())  #记录结束时间
    print u"time(秒):",end_Time - start_Time,"s"  #打印并计算用的时间
    print u"ping通数:",count_True,u"   ping不通的ip数:",count_False
ping_Test()