我猜你想看看是否有可用的东西(而不是 ping)......如果这是真的,这可能对你有用......
import socket
def check(host,port,timeout=2):
sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM) #presumably
sock.settimeout(timeout)
try:
sock.connect((host,port))
except:
return False
else:
sock.close()
return True
print(check('google.com',1234,timeout=1))
print(check('google.com',443,timeout=1))
也许你想计时……很简单
import time
def timed_check(host,port,timeout=2):
t0 = time.time()
if check(host,port,timeout):
return time.time()-t0 # a bit inexact but close enough
print(timed_check('google.com',1234,timeout=1))
print(timed_check('google.com',443,timeout=1))
或者你可能想要统计数据
def timed_stats_check(host,port,timeout=2,retries=5):
minimum,maximum,sumation = float('inf'),float('-inf'),0
errors = 0
for i in range(retries):
t = timed_check(host,port,timeout)
if t is None:
print("ERROR Unreachable...")
errors += 1
else:
print(f"Time {t:0.5f}s")
maximum = max(maximum,t)
minimum = min(minimum,t)
sumation += t
if retries > 0:
print(f"Max Time: {maximum:0.5f}s")
print(f"Min Time: {minimum:0.5f}s")
print(f"Average: {sumation/(retries-errors):0.2f}s")
print(f"Failures: {errors}/{retries}")