Python ping 伺服器

Muhammad Waiz Khan 2023年1月30日 2021年2月28日
  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