Python Function to test ping
Python Function to test ping
It looks like you want the return
keyword
def check_ping():
hostname = taylor
response = os.system(ping -c 1 + hostname)
# and then check the response...
if response == 0:
pingstatus = Network Active
else:
pingstatus = Network Error
return pingstatus
You need to capture/receive the return value of the function(pingstatus) in a variable with something like:
pingstatus = check_ping()
NOTE: ping -c
is for Linux, for Windows use ping -n
Some info on python functions:
http://www.tutorialspoint.com/python/python_functions.htm
http://www.learnpython.org/en/Functions
Its probably worth going through a good introductory tutorial to Python, which will cover all the fundamentals. I recommend investigating Udacity.com and codeacademy.com
Here is a simplified function that returns a boolean and has no output pushed to stdout:
import subprocess, platform
def pingOk(sHost):
try:
output = subprocess.check_output(ping -{} 1 {}.format(n if platform.system().lower()==windows else c, sHost), shell=True)
except Exception, e:
return False
return True
Python Function to test ping
Adding on to the other answers, you can check the OS and decide whether to use -c or -n:
import os, platform
host = 8.8.8.8
os.system(ping + (-n 1 if platform.system().lower()==windows else -c 1 ) + host)
This will work on Windows, OS X, and Linux
You can also use sys
:
import os, sys
host = 8.8.8.8
os.system(ping + (-n 1 if sys.platform().lower()==win32 else -c 1 ) + host)