2013-04-09 1 views
0

무언가의 ARP 요청을 보내고 VC++에서 ARP 응답 패킷을 수신하려면 어떤 유형의 RAW 소켓이 필요합니다.전송할 RAW 소켓의 유형 무상 ARP 요청을 받아 VC++에서 ARP 응답 패킷을 수신합니다.

int s = socket (AF_PACKET, SOCK_DGRAM, htons (ETH_P_ARP));

Windows의 해당 코드는 무엇이되어야합니까?

+0

가능한 복제본 [Winsock을 사용하여 ARP 패킷을 보내거나 ARP 패킷을받을 수 있습니까? 어떻게?] (http://stackoverflow.com/questions/8102629/can-i-use-winsock-to-construct-and-send-arp-packets-or-receive-arp-packets-how) –

+0

나는해야한다. 내 컴퓨터의 인터페이스 서브넷에없는 IP 주소를 확인하기위한 Gratuitous ARP 요청을 생성합니다. 존재하지 않습니다. SendArp()는 이것을 할 수 없습니다. –

답변

0

나는 똑같은 것을 알아 내려고 노력해 왔습니다. 하지만 창에서이 작업을 수행 할 수없는 것처럼 보입니다. Windows에서는 인터넷 계층 패킷 만 구성 할 수 있지만 ARP는 링크 계층에 있습니다. 그래서 정말로 이것을해야한다면, winpcap을 사용해야 할 것입니다.

0

예. windows는 이더넷의 경우 RAW 트래픽을 보낼 수 없지만 RAW 이더넷 트래픽은 보낼 수 있습니다.

그래서 자신의 이더넷 헤더를 구성하면 ARP 패킷을 보낼 수 있습니다.