Python Ping

Muhammad Waiz Khan 30 janvier 2023
  1. Serveur Ping en Python utilisant la méthode subprocess.call()
  2. Ping d’un serveur en Python en utilisant la méthode os.system()
  3. Serveur ping en Python en utilisant la fonction ping3.ping()
Python Ping

Ce tutoriel explique les différentes méthodes de ping d’un serveur utilisant le protocole ICMP (Internet Control Message Protocol) en Python. Le ping est utilisé pour vérifier si un serveur particulier est disponible ou non sur un protocole Internet. Il mesure le temps qu’il faut à un message pour atteindre sa destination (serveur) et à une réponse du serveur pour atteindre la source.

Serveur Ping en Python utilisant la méthode subprocess.call()

La méthode subprocess.call(command) prend command comme entrée et l’exécute. Elle renvoie 0 si la commande s’exécute avec succès.

La commande pour envoyer un ping à un serveur sera ping -c 1 host_address pour Unix et ping -n 1 host_address pour Windows, où 1 est le nombre de paquets et host_address est l’adresse du serveur que nous voulons envoyer.

Nous pouvons utiliser la méthode platform.system() pour vérifier d’abord le système d’exploitation de la machine et ensuite exécuter la commande en conséquence. L’exemple de code ci-dessous montre comment utiliser la méthode subprocess.call() pour exécuter la commande de ping d’un serveur en 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 d’un serveur en Python en utilisant la méthode os.system()

La méthode os.system(command) prend la command (une chaîne de caractères) en entrée et l’exécute dans une sous-coque. La méthode retourne 0 si la commande s’exécute sans aucune erreur.

Nous pouvons utiliser la méthode os.system() de la manière suivante pour exécuter la commande du serveur 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"))

Serveur ping en Python en utilisant la fonction ping3.ping()

La fonction ping(addr) du module ping3 prend l’adresse du serveur en entrée et retourne le temps de ping en sortie si le serveur est disponible et retourne False s’il n’est pas disponible.

Nous pouvons installer le module ping3 avec les privilèges root.

pip install ping3

Nous pouvons passer l’adresse du serveur à la méthode ping() pour faire un ping au serveur.

from ping3 import ping


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

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


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

Article connexe - Python Network