Ping IP

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Benutzeravatar
graphicsH
User
Beiträge: 84
Registriert: Donnerstag 8. September 2011, 10:21

Hi,
ich möchte per raw_input eine IP eingeben und diese pingen,
anschließend soll 'online' oder 'offline' ausgegeben werden.

Hab schon im Internet gesucht,bin aber bisher aus nichts schlau geworden... :K
-
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:


GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
graphicsH
User
Beiträge: 84
Registriert: Donnerstag 8. September 2011, 10:21

@jens
1. googlen kann ich,und wie du oben lesen kannst hab ich es auch bereits!
2. Ich möchte eine IP pingen,und das geht mit dem Skript nicht:
Code-Snippet hat geschrieben:

Code: Alles auswählen

 # Should fail (timeout), but it depends on the local network:
 verbose_ping("192.168.255.254")
ich brauche es aber auch außerhalb des lokalen Netzwerkes!
-
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

Na dann schau mal alles an:

Code: Alles auswählen

    # These should work:
    verbose_ping("heise.de")
    verbose_ping("google.com")

    # Inconsistent on Windows w/ ActivePython (Python 3.2 resolves correctly
    # to the local host, but 2.7 tries to resolve to the local *gateway*)
    verbose_ping("localhost")

    # Should fail with 'getaddrinfo failed':
    verbose_ping("foobar_url.foobar")

    # Should fail (timeout), but it depends on the local network:
    verbose_ping("192.168.255.254")

    # Should fails with 'The requested address is not valid in its context':
    verbose_ping("0.0.0.0")
"heise.de" ist definitiv nicht im Netzwerk
the more they change the more they stay the same
Benutzeravatar
graphicsH
User
Beiträge: 84
Registriert: Donnerstag 8. September 2011, 10:21

@Dav1d
und wenn man genauer hinschaut sind es websiten und keine IPs,
dort wo das IP beispiel steht,steht das es nur im Netzwerk funktioniert!
-
lunar

@graphicsH: Das von jens gezeigte Skript benötigt administrative Rechte und kann aus normalen Anwendungen heraus nicht verwendet werden. Mithin ist es für den praktischen Einsatz vollkommen unbrauchbar. Nutze stattdessen das "ping"-Programm. Aus Python heraus lassen sich externe Programme mit dem "subprocess"-Modul aufrufen.

Ansonsten solltest Du vielleicht nochmal nachlesen, und überlegen, was dort tatsächlich steht! Und dabei vielleicht auch gleich ein paar Grundbegriffe lernen. "heise.de" ist keine „Website“, und das Anpingen einer IP-Adresse klappt auch außerhalb des lokalen Netzwerks.
Benutzeravatar
graphicsH
User
Beiträge: 84
Registriert: Donnerstag 8. September 2011, 10:21

@lunar
1.gibt es keine möglickeit ein einfaches ping-programm zu schreiben,welches eine
ip anpingt und nacher 'online' oder 'offline' ausgibt?

2. Sorry,ich hab den text nur schnell überflogen und kenn mich in Netzwerkprogrammierung noch
nicht so aus (hab damit gestern! begonnen).
-
lunar

@graphicsH: Ich habe Dir gesagt, wie Du ein solches Programm schreiben kannst.
Benutzeravatar
graphicsH
User
Beiträge: 84
Registriert: Donnerstag 8. September 2011, 10:21

@lunar
von welchem Ping-programm redest du?
-
lunar

@graphicsH: Von dem "ping"-Programm, welches bei Windows dabei ist, und welches Du über die Windows-Konsole ausführen kannst. Bei allem Respekt, nach "windows ping" wirst Du doch wohl selbst suchen können, oder?
Benutzeravatar
graphicsH
User
Beiträge: 84
Registriert: Donnerstag 8. September 2011, 10:21

@lunar
ich bin nicht vollkommen bescheuert,aber gedankenlesen kann ich nicht,also
woher soll ich dann wissen von welchem ping-programm du redest wenn
niemand es bisher erwähnt hat?
-
Benutzeravatar
graphicsH
User
Beiträge: 84
Registriert: Donnerstag 8. September 2011, 10:21

@lunar
trotzdem danke,da das die bisher einzige hilfreiche antwort war.
-
lunar

@graphicsH: Nun, eben indem Du selbstständig suchst. Immerhin führt der erste Treffer einer Google-Suche nach "Windows ping" direkt zur Hilfeseite des Programms.
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

graphicsH hat geschrieben:ich bin nicht vollkommen bescheuert,aber gedankenlesen kann ich nicht,also
woher soll ich dann wissen von welchem ping-programm du redest wenn
niemand es bisher erwähnt hat?
Aufgrund deiner Anfrage mussten wir eigentlich nicht davon ausgehen, dass dir die Existenz von ping unter Windows unbekannt war.
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

lunar hat geschrieben:@graphicsH: Das von jens gezeigte Skript benötigt administrative Rechte und kann aus normalen Anwendungen heraus nicht verwendet werden. Mithin ist es für den praktischen Einsatz vollkommen unbrauchbar. Nutze stattdessen das "ping"-Programm.
Finde ich keine gute Lösung. Die Rückgabe von Kommandos auszuwerten ist wesentlich uneleganter und unflexibler als ein direkter Aufruf.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Was haltet ihr von der Idee, ping.py in ein separates github Projekt umzuwandeln (also aus meinem Skript-Sammlungs-Repro raus zu lösen...

Das ganze mit einer setup.py versehen, damit es über pip & Co. installierbar ist.

Man könnte dem noch eine Plattform-Übergreifende subprocess Lösung beilegen... Allerdings muß man dann die verschiedenen Ausgabe-Formate berücksichtigen... Vielleicht reicht im ersten Schritt ja nur die Analyse "war erfolgreich/war nicht erfolgreich"...

Bei Interesse würde ich das mal anfangen...

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
lunar

@mkesper: Du hältst es mithin für flexibler und eleganter, ein Python-Skript nur zum Pingen mit administrativen Privilegien auszuführen?!

@jens: Ich glaube kaum, dass es für "subprocess.call" ein eigenes Projekt braucht. Eine reine Python-Implementierung von "ping" dient aus genannten Gründen allenfalls Anschauungszwecken. Aber ich möchte Dich nicht aufhalten…
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

lunar hat geschrieben:Ich glaube kaum, dass es für "subprocess.call" ein eigenes Projekt braucht.
Es geht darum die Ausgaben aufzubereiten. Wenn das halbwegs platform Übergreifend sein soll, dann muß man ein wenig mehr Aufwand treiben...

Ich hab mal "ping.py" aus meine repro herraus extrahiert und mit einem bestehenden Fork zusammen gebacken.

Ist unter https://github.com/jedie/python-ping/ erreichbar...

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

lunar hat geschrieben:@mkesper: Du hältst es mithin für flexibler und eleganter, ein Python-Skript nur zum Pingen mit administrativen Privilegien auszuführen?!
Flexibler auf jeden Fall.
lunar

@jens: Nicht direkt zum Thema, aber meinst Du wirklich, dass die Eclipse-Konfiguration in das Repo gehört?
Antworten