원시 소켓을 사용하여 패킷을 보내려고합니다.가공 된 패킷의 목적지 IP와 원시 소켓의 목적지 IP 인수 사이의 차이점 send()
IP 패킷 (icmp, tcp 또는 udp 패킷)을 생성하면 소스 및 대상 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
에 의해 변경되지 않고 네트워크 내 라우터에서 처리됩니다.
제 이해가 정확합니까? 다른 차이점이 있습니까?
감사합니다.
내 질문과 대답 사이에 강한 관련성이 없습니다. – misteryes
@misteryes 편집을 참조하십시오. – EJP