Python ping 伺服器
    
    
            Muhammad Waiz Khan
    2023年1月30日
    
    Python
    Python Network
    
- 
          
            在 Python 中使用 subprocess.call()方法對伺服器進行 ping
- 
          
            在 Python 中使用 os.system()方法 ping 伺服器
- 
          
            在 Python 中使用 ping3.ping()函式執行 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"))
        Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe