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)

Leave a Reply

Your email address will not be published. Required fields are marked *