我在下面有 python 脚本,它检查 ping 是否成功,如果在 100 秒内成功,它将返回 True。如果 ping 失败,它应该返回 False,但它不会返回 False,当 ping 成功时,它返回 True。
任何人都可以修复下面的代码为什么它不返回 False
代码:
def ping(self,hostname):
time_check = datetime.now()
data = ""
while not "Success" in data:
time.sleep(1)
data = self.pingCheck("ping 10.10.10.1 count 5")
if (datetime.now()-time_check).seconds > 100:
return False
return True
请您参考如下方法:
下面的代码将为您工作:
import time
def ping(self, hostname, try_for=100):
t_end = time.time() + try_for
is_succeed = False
while time.time() < t_end or is_succeed:
time.sleep(1)
data = self.pingCheck("ping 10.10.10.1 count 5")
is_succeed = "Success" in data
return is_succeed
我已将等待时间定义为名为 try_for 的参数,其默认值设置为 100,但您可以传递您希望等待的任何其他秒数主机可用性。
