Python Ping

Muhammad Waiz Khan 30 enero 2023
  1. Hacer ping al servidor en Python usando el método subprocess.call()
  2. Ping al servidor en Python usando el método os.system()
  3. Ping Server en Python usando la función ping3.ping()
Python Ping

Este tutorial explicará varios métodos para hacer ping a un servidor utilizando el Protocolo de mensajes de control de Internet (ICMP) en Python. Ping se usa para verificar si un servidor en particular está disponible o no en un Protocolo de Internet. Mide el tiempo que tarda un mensaje en llegar al destino (servidor) y una respuesta del servidor en llegar al origen.

Hacer ping al servidor en Python usando el método subprocess.call()

El método subprocess.call(command) toma command como entrada y lo ejecuta. Devuelve 0 si el comando se ejecuta correctamente.

El comando para hacer ping a un servidor será ping -c 1 host_addres para Unix y ping -n 1 host_address para Windows, donde 1 es el número de paquetes y host_address es la dirección del servidor a la que queremos hacer ping.

Podemos usar el método platform.system() primero para verificar el sistema operativo de la máquina y luego ejecutar el comando en consecuencia. El siguiente código de ejemplo demuestra cómo usar el método subprocess.call() para ejecutar el comando para hacer ping a un servidor 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 al servidor en Python usando el método os.system()

El método os.system(command) toma el command (una cadena) como entrada y lo ejecuta en una subshell. El método devuelve 0 si el comando se ejecuta sin ningún error.

Podemos usar el método os.system() de la siguiente manera para ejecutar el comando del servidor 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 en Python usando la función ping3.ping()

La función ping(addr) del módulo ping3 toma la dirección del servidor como entrada y devuelve el tiempo de ping como salida si el servidor está disponible y devuelve False si no está disponible.

Podemos instalar el módulo ping3 con los privilegios de root.

pip install ping3

Podemos pasar la dirección del servidor al método ping() para hacer ping al servidor.

from ping3 import ping


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

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


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

Artículo relacionado - Python Network