Python Ping

Muhammad Waiz Khan 30 gennaio 2023
  1. Ping Server in Python usando il metodo subprocess.call()
  2. Ping Server in Python usando il metodo os.system()
  3. Ping Server in Python usando la funzione ping3.ping()
Python Ping

Questo tutorial spiegherà vari metodi per eseguire il ping di un server utilizzando ICMP (Internet Control Message Protocol) in Python. Ping viene utilizzato per verificare se un determinato server è disponibile o meno su un protocollo Internet. Misura il tempo impiegato da un messaggio per raggiungere la destinazione (server) e una risposta del server per raggiungere l’origine.

Ping Server in Python usando il metodo subprocess.call()

Il metodo subprocess.call(command) accetta command come input e lo esegue. Restituisce 0 se il comando viene eseguito con successo.

Il comando per eseguire il ping di un server sarà ping -c 1 host_address per Unix e ping -n 1 host_address per Windows, dove 1 è il numero di pacchetti e host_address è l’indirizzo del server su cui vogliamo eseguire il ping.

Possiamo usare il metodo platform.system() prima per controllare il sistema operativo della macchina e poi eseguire il comando di conseguenza. Il codice di esempio seguente mostra come utilizzare il metodo subprocess.call() per eseguire il comando per eseguire il ping di un server in Python.

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"))

Ping Server in Python usando il metodo os.system()

Il metodo os.system(command) accetta il command (una stringa) come input e lo esegue in una subshell. Il metodo restituisce 0 se il comando viene eseguito senza errori.

Possiamo usare il metodo os.system() nel modo seguente per eseguire il comando del server 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"))

Ping Server in Python usando la funzione ping3.ping()

La funzione ping(addr) del modulo ping3 prende l’indirizzo del server come input e restituisce il tempo di ping come output se il server è disponibile e restituisce False se non è disponibile.

Possiamo installare il modulo ping3 con i privilegi root.

pip install ping3

Possiamo passare l’indirizzo del server al metodo ping() per eseguire il ping del server.

from ping3 import ping


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

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


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

Articolo correlato - Python Network