standard ping funktion
-
Hallo,
wollte ein Programm schreiben in dem ich den ping Befehl verwende.
Nur wollte ich es so schreiben, dass es sowohl unter Linux als auch unter Windows läuft.Welche Bibliotheken muss ich dafür benutzen?
Wie heisst die Funktion?
Wie kann ich die Antwort des ping auswerten?mfg Markus
-
-
Ich bezweifle, dass du Winsock unter Linux ans Laufen kriegst.
-
0xdeadbeef schrieb:
Ich bezweifle, dass du Winsock unter Linux ans Laufen kriegst.
nö, aber raw sockets gibt's da ja auch
-
Kann einer von euch den Unterschied zwischen winsock und raw-sock erklären?
Hier den Text den ich wahrscheinlich gut in meinem Programm einbauen könnte, nur das ich dafür
#include <winsock2.h>
includen muss gibts die Bibliothek für Linux oder was muss ich dafür nehmen?
Etwa die Bibliothek <rawsocket.h> ???
Gibt es das ?// Set up for pinging SOCKET sd; sockaddr_in dest, source; if (setup_for_ping(argv[1], ttl, sd, dest) < 0) { goto cleanup; } if (allocate_buffers(send_buf, recv_buf, packet_size) < 0) { goto cleanup; } init_ping_packet(send_buf, packet_size, seq_no); // Send the ping and receive the reply if (send_ping(sd, dest, send_buf, packet_size) >= 0) { while (1) { // Receive replies until we either get a successful read, // or a fatal error occurs. if (recv_ping(sd, source, recv_buf, MAX_PING_PACKET_SIZE) < 0) { // Pull the sequence number out of the ICMP header. If // it's bad, we just complain, but otherwise we take // off, because the read failed for some reason. unsigned short header_len = recv_buf->h_len * 4; ICMPHeader* icmphdr = (ICMPHeader*) ((char*)recv_buf + header_len); if (icmphdr->seq != seq_no) { cerr << "bad sequence number!" << endl; continue; } else { break; } } if (decode_reply(recv_buf, packet_size, &source) != -2) { // Success or fatal error (as opposed to a minor error) // so take off. break; } } } cleanup: delete[]send_buf; delete[]recv_buf; WSACleanup(); return 0; }Habt ihr daazu noch gute Links wo steht welche Funktionen man mit den nötigen Bibliotheken ausführen kann? Und dessen Syntax?
mfg Markus
-
guckst du hier: http://www.zotteljedi.de/doc/raw-socket-tipps.html#k9
(unter 'beispiele')