Diniz Martins

Sep 18, 20201 min

Python | Subnet Ping

This script will ping and display status of all hosts in a subnet we provide.

import subprocess
 
import ipaddress
 
from subprocess import Popen, PIPE
 
subnet = input("Please enter the network: ")
 
network = ipaddress.ip_network(subnet)
 
for i in network.hosts():
 
i=str(i)
 
toping = subprocess.Popen(['ping', '-c', '3', i], stdout=PIPE)
 
output = toping.communicate()[0]
 
hostalive = toping.returncode
 
if hostalive == 0:
 
print(i,'is ' + '\033[92m' + 'reachable' + '\033[0m')
 
else:
 
print(i,'is ' + '\033[91m' + 'unreachable' + '\033[0m')

That's what the script works:

drm@STENGE % python3 ping-subnet.py
 
Please enter the network: 192.168.0.0/29
 
192.168.0.1 is reachable
 
192.168.0.2 is unreachable
 
192.168.0.3 is reachable
 
192.168.0.4 is reachable
 
192.168.0.5 is reachable
 
192.168.0.6 is reachable
 
drm@STENGE %

    1540
    7