Python Ping
- 
          
            Ping Server in Python usando il metodo subprocess.call()
- 
          
            Ping Server in Python usando il metodo os.system()
- 
          
            Ping Server in Python usando la funzione ping3.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"))