2016-06-11 2 views
1

Ich versuche, eine bestimmte IP-Adresse, die nach dem Ausführen der Anwendung eingegeben wird Ping. Hier ist mein aktueller Code, aber jedes Mal, wenn ich eine IP eintrage, kommt es zu Fehlern, die auf eine ungültige Syntax hinweisen. Ich habe andere Themen durchsucht, aber sie beinhalten das Pingen einer Reihe von IPs auf einmal. Danke für Ihre Hilfe.Python - Ping eine bestimmte IP, die Eingabe ist

def pingComputer(): 
import os 
hostname = input("Enter the ip address: ") 
response = os.system("ping -c 1 " + hostname) 

if response == 0: 
    print hostname, 'is up!' 
else: 
    print hostname, 'is down!' 
+1

Ist Ihr Einzug in dieser Frage richtig? – Serdalis

+0

Sie müssen die genaue Fehlermeldung liefern – PyNEwbie

+0

Ich glaube nicht, dass es einen Parameter -c für Ping gibt, aber nicht ganz sicher – PyNEwbie

Antwort

1

Es gibt ein paar Probleme mit dem Code in Frage, aber hier ist eine näher an Arbeitsversion:

# put the imports here for better readability. 
import os 

def pingComputer(): 
    # you need to indent when you write code for a function 
    # you also need to use raw_input in python 2.x because raw_input returns a string 
    # where input tries to interpret the input. 
    hostname = raw_input("Enter the ip address: ") 
    response = os.system("ping -c 1 " + hostname) 

    if response == 0: 
     print hostname, 'is up!' 
    else: 
     print hostname, 'is down!' 

# you weren't calling your function, 
# I added a standard main check which will call your function. 
if __name__ == "__main__": 
    pingComputer() 

Es gibt ein paar nützliche Ressourcen, die Sie bei für raw_input aussehen könnte und input in Python 2.X, die Ihnen helfen wird zu wählen, welche zu verwenden.

1

convert Hostnamen in Zeichenfolge vor ping

def pingComputer(): 

    import os 
    hostname = input("Enter the ip address: ") 
    response = os.system("ping -c 1 " + str(hostname)) 
    if response == 0: 
    print hostname, 'is up!' 
    else: 
    print hostname, 'is down!'