Python:在做任何事情之前进行 Ping 测试
Posted
技术标签:
【中文标题】Python:在做任何事情之前进行 Ping 测试【英文标题】:Python: Ping Test before doing anything 【发布时间】:2022-01-14 02:55:09 【问题描述】:我目前正在尝试在我做某事之前检查我是否有互联网连接,但即使我 Ping 一个连接,它也不应该跳转到如果它仍然有。
ipaddress = '8.8.8.8'
ipaddress2 = '8.8.4.4'
response = os.system("ping -c 1 " + ipaddress)
response2 = os.system("ping -c 1 " + ipaddress2)
if response or response2 == 0:
do something
【问题讨论】:
您使用的是什么操作系统? @Daweo 我用的是 Linux 尝试在 bash shell 中运行它,看看如果你故意使用不存在的 IP 地址会发生什么。在 macOS 上,以下将返回值 2。 ping -c 1 -t 1 88.8.8.8 >/dev/null;回声 $? 另外值得注意的是,您的代码不一定能实现您的目标。您指定的 IP 地址是 Google 公共 DNS 服务器。如果由于某种原因,这些服务器不可用,那么这并不表明您是否有可行的互联网连接。这只是意味着您无法到达这些地址。您也许可以联系到其他人。 @JCaesar 我从我正在使用的服务器插入互联网。我认为它不应该跳入 If then.. 【参考方案1】:我自己发现了问题。
在 Python 中,您必须将比较放在每个变量后面。
像这样:
ipaddress = '8.8.8.8'
ipaddress2 = '8.8.4.4'
response = os.system("ping -c 1 " + ipaddress)
response2 = os.system("ping -c 1 " + ipaddress2)
if response == 0 or response2 == 0:
do something
【讨论】:
这是因为 os.system 返回该命令的系统退出代码。在 Linux exit 0 中,表示命令成功完成以上是关于Python:在做任何事情之前进行 Ping 测试的主要内容,如果未能解决你的问题,请参考以下文章
RemoteNotifications 没有注册/没有做任何事情