Ping IP/Server Address using Python Example


We can make use of the subprocess module to call a subprocess to perform a ping command.

Example 1: Ping an IP Address

>>> import subprocess
>>> 
>>> def ping_ip(ip_address, count=5):
...     try:
...         output = subprocess.check_output(['ping', '-c', str(count), ip_address])
...         return output.decode('utf-8')
...     except subprocess.CalledProcessError as e:
...         return e.output.decode('utf-8')
... 
>>> server_ip_address = '8.8.8.8'
>>> 
>>> ping_output = ping_ip(server_ip_address)

print(ping_output)

>>> 
>>> print(ping_output)

PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: icmp_seq=0 ttl=118 time=7.364 ms
64 bytes from 8.8.8.8: icmp_seq=1 ttl=118 time=9.279 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=118 time=9.535 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=118 time=8.679 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=118 time=5.167 ms

Example 2: Pinging using Domain
import subprocess

def ping_domain(domain_address, count=5):
    try:
        output = subprocess.check_output(['ping', '-c', str(count), domain_address])
        return output.decode('utf-8')
    except subprocess.CalledProcessError as e:
        return e.output.decode('utf-8')

server_domain_address = 'code2care.org'

ping_output = ping_domain(server_domain_address)

print(ping_output)
Output:
PING code2care.org (172.67.164.66): 56 data bytes
64 bytes from 172.67.164.66: icmp_seq=0 ttl=58 time=11.716 ms
64 bytes from 172.67.164.66: icmp_seq=1 ttl=58 time=6.696 ms
64 bytes from 172.67.164.66: icmp_seq=2 ttl=58 time=5.827 ms
64 bytes from 172.67.164.66: icmp_seq=3 ttl=58 time=6.884 ms
64 bytes from 172.67.164.66: icmp_seq=4 ttl=58 time=11.144 ms
Ping IP or Domain using Python Code Example
-

Facing issues? Have Questions? Post them here! I am happy to answer!


Author Info:

Rakesh (He/Him) is a seasoned developer with over 10 years of experience in web and app development, and a deep knowledge of operating systems. Author of insightful How-To articles for Code2care.

Follow him on: X

You can also reach out to him via e-mail: rakesh@code2care.org

Copyright © Code2care 2024 | Privacy Policy | About Us | Contact Us | Sitemap