Python ping 服务器

Muhammad Waiz Khan 2023年1月30日
  1. 在 Python 中使用 subprocess.call() 方法对服务器进行 ping
  2. 在 Python 中使用 os.system() 方法 ping 服务器
  3. 在 Python 中使用 ping3.ping() 函数执行 Ping 服务器命令
Python ping 服务器

本教程将解释在 Python 中使用 Internet 控制消息协议(ICMP)ping 服务器的各种方法。Ping 用于检查一个特定的服务器在互联网协议上是否可用。它测量消息到达目的地(服务器)和服务器响应到达源的时间。

在 Python 中使用 subprocess.call() 方法对服务器进行 ping

subprocess.call(command) 方法将 command 作为输入并执行它。如果命令执行成功,则返回 0

ping 服务器的命令对于 Unix 来说是 ping -c 1 host_address,对于 Windows 来说是 ping -n 1 host_address,其中 1 是数据包的数量,host_address 是我们要 ping 的服务器地址。

我们可以先用 platform.system() 方法检查机器的操作系统,然后运行相应的命令。下面的示例代码演示了如何使用 subprocess.call() 方法在 Python 中执行 ping 服务器的命令。

import platform
import subprocess


def myping(host):
    parameter = "-n" if platform.system().lower() == "windows" else "-c"

    command = ["ping", parameter, "1", host]
    response = subprocess.call(command)

    if response == 0:
        return True
    else:
        return False


print(myping("www.google.com"))

在 Python 中使用 os.system() 方法 ping 服务器

os.system(command) 方法将 command(一个字符串)作为输入,并在子壳中执行。如果命令执行时没有任何错误,该方法返回 0

我们可以用下面的方式使用 os.system() 方法来执行 ping 服务器命令。

import os


def myping(host):
    response = os.system("ping -c 1 " + host)

    if response == 0:
        return True
    else:
        return False


print(myping("www.google.com"))

在 Python 中使用 ping3.ping() 函数执行 Ping 服务器命令

ping3 模块的 ping(addr) 函数将服务器地址作为输入,如果服务器可用,则返回 ping 时间作为输出,如果服务器不可用,则返回 False

我们可以用 root 权限安装 ping3 模块。

pip install ping3

我们可以将服务器地址传给 ping() 方法来 ping 服务器。

from ping3 import ping


def myping(host):
    resp = ping(host)

    if resp == False:
        return False
    else:
        return True


print(myping("www.google.com"))

相关文章 - Python Network