C Ping



  • Hab ein kleines Ping Programm in C geschrieben. Ich hab dabei die Source Addresse aendern so dass der Ping mit einer falschen source Addresse verschickt wird:

    struct iphdr* ip;
    ip->saddr = inet_addr("1.1.1.1");
    

    soweit funktioniert alles. Wenn ich mit
    Wireshark das ganze ueberpruefe wird eine ICMP mit src: 1.1.1.1 versendet aber wieso erhalte ich eine REPLY?? Die REPLY sollte doch an die source geschickt werden (also 1.1.1.1) im Request IP-Header?? Wireshark:

    Source           Destination       Protocol
          1.1.1.1          127.0.0.1         ICMP            Echo request
          127.0.0.1        127.0.0.1         ICMP            Echo reply
    


  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C (C89 und C99) in das Forum Themen rund um den PC verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Ich kenne micht zwar nicht auf diesem Gebiet aus, aber musst du nicht auch das Ethernet Paket anpassen?



  • Binggi schrieb:

    Ich kenne micht zwar nicht auf diesem Gebiet aus, aber musst du nicht auch das Ethernet Paket anpassen?

    Nei! Was hat den der Ethernet Header damit zu tun?

    Er schickt sein Packet an 127.0.0.1 ... und was kommt dabei raus? 3mal darfste raten!



  • Fuer die Reply muesste doch die Source im IP Header der Request benutzt werden und diese wird dann nur in den IP Header der Reply kopiert oder etwa nicht? wieso gibt mir Wireshark dann als Destination der Reply 127.0.0.1??



  • Weil es localhost ist! Und dies ist implementierungs abhängig.
    Dein OS?


Log in to reply