Seite 1 von 1

Ping mit Millisekunden-Timeout

Verfasst: Donnerstag 2. August 2012, 11:59
von Moneyman
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?

Re: Ping mit Millisekunden-Timeout

Verfasst: Donnerstag 2. August 2012, 12:18
von EyDu
Hallo.

Ich habe den Code von ping.py nur kurz überflogen, aber für mich sieht das nicht nach einer Einschränkung auf ganze Sekunden aus.

Re: Ping mit Millisekunden-Timeout

Verfasst: Donnerstag 2. August 2012, 12:27
von Moneyman
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.

Code: Alles auswählen

print ping.do_one('122.0.0.2', timeout=3, psize=16)
Leider braucht er ca. 3 Sekunden bis eine Ausgabe erfolgt. Setzt man den Timeout höher so dauert es dementsprechend länger

Re: Ping mit Millisekunden-Timeout

Verfasst: Donnerstag 2. August 2012, 12:36
von EyDu
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.

Re: Ping mit Millisekunden-Timeout

Verfasst: Donnerstag 2. August 2012, 12:48
von Moneyman
Ok ich sage nichts mehr. Ich hatte 0.X ausprobiert aber da nicht merkbar einen Unterschied festgestellt. Auf 0.00X bin ich nicht gekommen :oops:

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 ;)

Re: Ping mit Millisekunden-Timeout

Verfasst: Sonntag 30. Dezember 2012, 00:31
von overflow
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.

Re: Ping mit Millisekunden-Timeout

Verfasst: Montag 7. Januar 2013, 23:03
von Leonidas
overflow hat geschrieben:Standardmäßig braucht man dafür root Rechte.
Das stimmt so nicht, ich hab das jetzt eben als ganz normaler User ausprobiert und es funktioniert ohne root-Rechte genauso.

Re: Ping mit Millisekunden-Timeout

Verfasst: Dienstag 8. Januar 2013, 08:20
von sparrow
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
Zumindest unter einem CentOS 5.x

Re: Ping mit Millisekunden-Timeout

Verfasst: Dienstag 8. Januar 2013, 08:57
von BlackJack
Unter Ubuntu 12.04 und RaspBMC (Raspbian (Debian Wheezy)) geht es auch nicht als normaler Benutzer.

Re: Ping mit Millisekunden-Timeout

Verfasst: Dienstag 8. Januar 2013, 14:37
von Leonidas
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).

Re: Ping mit Millisekunden-Timeout

Verfasst: Mittwoch 9. Januar 2013, 00:29
von overflow
Leonidas 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).
Das ist der Unterschied zwischen Linux und Unix ;)
http://linux.die.net/man/8/hping3

@Leonidas: Meine Aussage beruhte sich auf unixoide Systeme wie openBSD.