0

raw ソケットを使用してパケットを送信したいと考えています。

IP パケット (icmp、tcp、または udp パケット) を作成すると、ソース IP と宛先 IP が IP パケットに含まれます。今、次の行で送信したいと思います。

    memset(&sin, 0, sizeof(sin));
    sin.sin_family = AF_INET;
    sin.sin_addr.s_addr = inet_addr(dst_ip);
    sendto(sd, packet, 60, 0, (struct sockaddr *)&sin, sizeof(sin));

もちろん、これdst_ipはパケット内の宛先 IP と同じである必要があります。

dst_ipがパケットの宛先 IP と同じでない場合はどうなるのだろうと思っています。dst_ipは、パケットの送信に使用する NIC を決定するために使用されるようです。巧妙に細工されたパケットの宛先 IP は変更されずdst_ip、ネットワーク内ルーターによって処理されます。

私の理解は正しいですか?他に違いはありますか?

ありがとう!

4

1 に答える 1