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
、ネットワーク内ルーターによって処理されます。
私の理解は正しいですか?他に違いはありますか?
ありがとう!