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 测试的主要内容,如果未能解决你的问题,请参考以下文章

图像侵蚀手动实现不做任何事情 Python

PopSQL 连接、测试和保存按钮不做任何事情

CSS下拉菜单:悬停不做任何事情

RemoteNotifications 没有注册/没有做任何事情

Azure Active Directory,允许的令牌受众似乎没有做任何事情

为啥json没有做任何事情?