在Python中,是否有一种方法可以通过ICMP来ping一个服务器,如果服务器有响应,则返回TRUE,如果没有响应,则返回FALSE?
如果你不需要支持Windows,这里有一个非常简明的方法可以做到。
import os
hostname = "google.com" #example
response = os.system("ping -c 1 " + hostname)
#and then check the response...
if response == 0:
print hostname, 'is up!'
else:
print hostname, 'is down!'
这样做是因为如果连接失败,ping会返回一个非零值。(你也可以用'-t'选项来改变ping的超时时间(以秒为单位)。 注意,这将向控制台输出文本。
1 #!/usr/bin/python
2
3 import os
4 import sys
5 import time
6
7 os.system("clear")
8 home_network = "172.16.23."
9 mine = []
10
11 for i in range(1, 256):
12 z = home_network + str(i)
13 result = os.system("ping -c 1 "+ str(z))
14 os.system("clear")
15 if result == 0:
16 mine.append(z)
17
18 for j in mine:
19 print "host ", j ," is up"
一个简单的,我刚刚在一分钟内做出来的。使用icmplib需要root权限,下面的工作非常好。 HTH