菜鸟一枚,写着试了试,虽说有点杂乱,但还是能用,我是在linux下运行的
大致说下过程:
1、把需要ping的网段中所有ip存到数组中(我是放到数组中了,其实直接for循环,一个个的也行)
2、遍历数组,逐个ping
3、根据ping返回的字符串,判断是否ping通
4、结果存入txt中
下面上代码咯(其实可以简化代码的,我这里就不简化了)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
#!/usr/bin/env python # coding: utf8 import time import subprocess import codecs import os import re # telnet host def pingComputer(host, statusFile): status1 = 'ping success' status2 = 'ping faild' errorStr = 'Destination' for ipAdd in host: print ( "get: " + ipAdd + " status" ) # get now time nowTime = time.strftime( '%Y-%m-%d %H:%M:%S' ,time.localtime(time.time())) p = os.popen( "ping -q -c 2 -r " + ipAdd) line = p.read() # judge errorstr in line if if errorStr in line: writeToText(nowTime, ipAdd, status2, statusFile) else : writeToText(nowTime, ipAdd, status1, statusFile) # write status information to txt def writeToText(nowTime, ipAdd, status, statusFile): s_text = 'TIME:' + nowTime + '\t' + 'IP:' + ipAdd + '\t' + 'STATUS:' + status + '\r\n' if '0' = = judgeFile(statusFile): with open (statusFile, 'a' ) as f: f.write(s_text) f.close() if '1' = = judgeFile(statusFile): with open (statusFile, 'w' ) as f: f.write(s_text) f.close() # Determine whether statusFile exists # 0: exists # 1: no exists def judgeFile(statusFile): if os.path.exists(statusFile): return '0' else : return '1' if __name__ = = "__main__" : IpFirst = '192.168.1.' # ip:1~254 host = [] for j in range ( 254 ): host.append(IpFirst + str (j + 1 )) # write file statusFile = '/root/UpStatus.txt' pingComputer(host, statusFile) |
就是一台一台的ping,判断,有点慢!
以上这篇Python检查ping终端的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/qq_21911403/article/details/77583561