파이썬 핑

Muhammad Waiz Khan 2023년1월30일
  1. subprocess.call()메소드를 사용하여 Python에서 서버 핑
  2. os.system()메소드를 사용하여 Python에서 서버 핑
  3. ping3.ping()함수를 사용하는 Python의 Ping 서버
파이썬 핑

이 튜토리얼은 Python에서 ICMP (Internet Control Message Protocol)를 사용하여 서버를 ping하는 다양한 방법을 설명합니다. Ping은 인터넷 프로토콜에서 특정 서버를 사용할 수 있는지 여부를 확인하는 데 사용됩니다. 메시지가 대상 (서버)에 도달하고 서버 응답이 소스에 도달하는 데 걸리는 시간을 측정합니다.

subprocess.call()메소드를 사용하여 Python에서 서버 핑

subprocess.call(command)메소드는command를 입력으로 받아 실행합니다. 명령이 성공적으로 실행되면0을 반환합니다.

서버를 ping하는 명령은 Unix의 경우ping -c 1 host_address, Windows의 경우ping -n 1 host_address입니다. 여기서1은 패킷 수이고host_address는 ping하려는 서버 주소입니다.

먼저platform.system()메소드를 사용하여 머신의 OS를 확인한 다음 그에 따라 명령을 실행할 수 있습니다. 아래 예제 코드는subprocess.call()메소드를 사용하여 Python에서 서버를 ping하는 명령을 실행하는 방법을 보여줍니다.

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

os.system()메소드를 사용하여 Python에서 서버 핑

os.system(command)메소드는command(문자열)를 입력으로 받아서 서브 쉘에서 실행합니다. 명령이 오류없이 실행되면 메서드는0을 반환합니다.

다음과 같은 방법으로os.system()메소드를 사용하여 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"))

ping3.ping()함수를 사용하는 Python의 Ping 서버

ping3모듈의ping(addr)함수는 서버 주소를 입력으로 사용하고 서버가 사용 가능하면 ping 시간을 출력으로 반환하고 사용할 수없는 경우False를 반환합니다.

root권한으로ping3모듈을 설치할 수 있습니다.

pip install ping3

서버 주소를ping()메소드에 전달하여 서버를 ping 할 수 있습니다.

from ping3 import ping


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

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


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

관련 문장 - Python Network