PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ping implementierung in Ansi C



sleon
17-07-2003, 10:42
Wie kann man am besten ping implementieren. Also berechnen wie schnell der server antwortet?
Kann man das auch mit UDP machen, besonders wenn ein server icmp anfragen blockiert.

SeeksTheMoon
17-07-2003, 11:01
nein, das klassische ping läuft nur mit icmp.

Wenn Du Zeit-Messung willst, dann willst Du sowas wie traceroute nachprogrammieren...

sleon
17-07-2003, 11:23
und wie würde es mit icmp funktionieren?

almoeli
17-07-2003, 11:48
Hi,

ein ping basiert auf einem sog. ICMP ECHO Request. Das ist einfach ein kleines Datenpaket welches du über einen offenen Socket schickst, welcher als RAW-Socket mit dem Protokoll ICMP geöffnet wurde (siehe socket() Systemfunktion). Danach wartest du am Socket auf das Antwortpaket.
Die notwendigen Definitionen für ICMP befinden sich im Headerfile netinet/ip_icmp.h
Wenn du ein Beispiel für die Verwendung brauchst, dann empfehle ich dir die libping. Zu bekommen unter:

www.joedog.org/libping/ (http://www.joedog.org/libping/)

Oder du verwendest gleich diese lib.

Gruß

almoeli

sleon
17-07-2003, 12:39
vielen vielen dank