Python Ping

Muhammad Waiz Khan 30 janeiro 2023
  1. Executar ping no servidor em Python usando o método subprocess.call()
  2. Ping Server em Python usando o método os.system()
  3. Executar ping no servidor em Python usando a função ping3.ping()
Python Ping

Este tutorial explicará vários métodos para executar ping em um servidor usando Internet Control Message Protocol (ICMP) em Python. O ping é usado para verificar se um determinado servidor está disponível ou não em um protocolo de Internet. Ele mede o tempo que leva para uma mensagem chegar ao destino (servidor) e para uma resposta do servidor chegar à origem.

Executar ping no servidor em Python usando o método subprocess.call()

O método subprocess.call(command) recebe command como entrada e o executa. Ele retorna 0 se o comando for executado com sucesso.

O comando para fazer ping em um servidor será ping -c 1 host_address para Unix e ping -n 1 host_address para Windows, onde 1 é o número de pacotes e host_address é o endereço do servidor que queremos fazer o ping.

Podemos usar o método platform.system() primeiro para verificar o sistema operacional da máquina e, em seguida, executar o comando de acordo. O código de exemplo a seguir demonstra como usar o método subprocess.call() para executar o comando de ping em um servidor em 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 em Python usando o método os.system()

O método os.system(command) recebe o command (uma string) como entrada e o executa em um subshell. O método retorna 0 se o comando for executado sem nenhum erro.

Podemos usar o método os.system() da seguinte maneira para executar o comando do 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"))

Executar ping no servidor em Python usando a função ping3.ping()

A função ping(addr) do módulo ping3 leva o endereço do servidor como entrada e retorna o tempo de ping como saída se o servidor estiver disponível e retorna False se não estiver disponível.

Podemos instalar o módulo ping3 com privilégios de root.

pip install ping3

Podemos passar o endereço do servidor para o método ping() para fazer o ping do servidor.

from ping3 import ping


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

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


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

Artigo relacionado - Python Network