Ich suche irgendwie vergebens nach einer Möglichkeit auf Windows und Linux eine Pingabfrage an verschiedene Adressen mit einem Timeout von weniger als eine Sekunde zu schicken. Auf Windows funktioniert das ja sogar standardmäßig über die Eingabeaufforderung. Bei Linux ist es jedoch auf Sekunden beschränkt (bzw habe ich nichts anderes gefunden).
Auch ping.py bietet nur Timeouts in Sekunden an...
Kennt ihr eine Methode wie ich den Timeout im Millisekundenbereich setzen kann?
Ping mit Millisekunden-Timeout
Ja da magst du recht haben. Ich habe sogar mal irgendwo gelesen, dass Millisekunden gehen sollen.
Ich habe diesen Befehl einfach mal ausprobiert und mit dem Timeout rumgespielt.
Leider braucht er ca. 3 Sekunden bis eine Ausgabe erfolgt. Setzt man den Timeout höher so dauert es dementsprechend länger
Ich habe diesen Befehl einfach mal ausprobiert und mit dem Timeout rumgespielt.
Code: Alles auswählen
print ping.do_one('122.0.0.2', timeout=3, psize=16)
Es ist ja nun auch wirklich keine Überraschung, wenn du "timeout=3" setzt, dass dann ggf. 3 Sekunden gewartet wird. Warum übergibst du nicht einfach 3 ms als "timeout=0.003"?
Edit: Was ist eigentlich der Grund, dass du ein kürzes Timeout brauchst? Vielleicht lässt sich hier noch optimieren. Evtl. einfach durch Threads, falls du eine große Menge an zu testenden Adressen hast.
Edit: Was ist eigentlich der Grund, dass du ein kürzes Timeout brauchst? Vielleicht lässt sich hier noch optimieren. Evtl. einfach durch Threads, falls du eine große Menge an zu testenden Adressen hast.
Das Leben ist wie ein Tennisball.
Ok ich sage nichts mehr. Ich hatte 0.X ausprobiert aber da nicht merkbar einen Unterschied festgestellt. Auf 0.00X bin ich nicht gekommen
Ja ich habe ca. 700 hosts die ich so abfragen will. Mit Threads arbeite ich schon, ich wollte lediglich die dauer der einzelnen Threads so gering wie möglich halten.
Danke für den Tip
Ja ich habe ca. 700 hosts die ich so abfragen will. Mit Threads arbeite ich schon, ich wollte lediglich die dauer der einzelnen Threads so gering wie möglich halten.
Danke für den Tip
Hallo,
vorab ich bin kein Python Experte
Der Thread ist zwar etwas älter, aber dennoch möchte ich noch kurz etwas beitragen.
Unter unixoden Systemen kannst du die Intervalle für das Tool "ping" mit dem Schalter "-i" angeben.
Standardmäßig braucht man dafür root Rechte.
Ich weiß zwar nicht, was du vorhast, aber je mehr Pakete du in einer bestimmten Zeit verschickst,
desto "lauter" wird es im Netzwerk.
Einem "gutem" Administrator wird der "Lärm" schnell auffallen.
vorab ich bin kein Python Experte
Der Thread ist zwar etwas älter, aber dennoch möchte ich noch kurz etwas beitragen.
Unter unixoden Systemen kannst du die Intervalle für das Tool "ping" mit dem Schalter "-i" angeben.
Standardmäßig braucht man dafür root Rechte.
Ich weiß zwar nicht, was du vorhast, aber je mehr Pakete du in einer bestimmten Zeit verschickst,
desto "lauter" wird es im Netzwerk.
Einem "gutem" Administrator wird der "Lärm" schnell auffallen.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Das stimmt so nicht, ich hab das jetzt eben als ganz normaler User ausprobiert und es funktioniert ohne root-Rechte genauso.overflow hat geschrieben:Standardmäßig braucht man dafür root Rechte.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
man ping hat geschrieben: -i interval
Wait interval seconds between sending each packet. The default
is to wait for one second between each packet normally, or not
to wait in flood mode. Only super-user may set interval to val-
ues less 0.2 seconds.
Code: Alles auswählen
$ ping www.google.de -i 0.1
PING www.google.de (173.194.69.94) 56(84) bytes of data.
ping: cannot flood; minimal interval, allowed for user, is 200ms
Unter Ubuntu 12.04 und RaspBMC (Raspbian (Debian Wheezy)) geht es auch nicht als normaler Benutzer.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Hmm interessant, in der Manpage habe ich geschaut, allerdings ist der von Arch Linux gelieferten Manpage von ping die ``-i``-Option gar nicht erst dokumentiert (also nur in der Aufrufsyntax, sonst nicht).
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Das ist der Unterschied zwischen Linux und UnixLeonidas hat geschrieben:Hmm interessant, in der Manpage habe ich geschaut, allerdings ist der von Arch Linux gelieferten Manpage von ping die ``-i``-Option gar nicht erst dokumentiert (also nur in der Aufrufsyntax, sonst nicht).
http://linux.die.net/man/8/hping3
@Leonidas: Meine Aussage beruhte sich auf unixoide Systeme wie openBSD.