I am trying to write a Python script that pings IP addresses and outputs whether each ping succeeded. So far I have the following code, but the output seems inaccurate. Namely, when I run the script, it pings each hostname as expected but the output is only ever all up or all down.
import os
hostname0 = "10.40.161.2"
hostname1 = "10.40.161.3"
hostname2 = "10.40.161.4"
hostname3 = "10.40.161.5"
response = os.system("ping -c 1 " + hostname0)
response = os.system("ping -c 1 " + hostname1)
response = os.system("ping -c 1 " + hostname2)
response = os.system("ping -c 1 " + hostname3)
if response == 0:
print hostname0, 'is up'
print hostname1, 'is up'
print hostname2, 'is up'
print hostname3, 'is up'
else:
print hostname0, 'is down'
print hostname1, 'is down'
print hostname2, 'is down'
print hostname3, 'is down'
response. By the if statement, it is only based on the response to hostname8.os.systemexplicitly tell you that "The subprocess module provides more powerful facilities for spawning new processes and retrieving their results; using that module is preferable to using this function."