2012-05-21 1 views
-2

BOOTP/DHCP 패킷에 IP 주소를 보내는 사용자 지정된 DHCP 서버를 구현하려고합니다. 수신 된 DISCOVER 패킷의 구문 분석이 완료되었습니다. 구조를 채운 후에; sendto 함수를 통해 OFFER 패킷을 보낼 수 없습니다. OFFER 패킷은 유니 캐스트 패킷 인 것 같습니다. 여기서 대상 주소는 클라이언트 시스템에 제공 할 IP입니다.DHCP OFFER 패킷 보내기 관련 문제

비트 혼동; 존재하지 않는 IP 주소에 대해 일반 DGRAM 소켓을 사용하여 DHCP OFFER 패킷을 보내는 방법 ?? 또한; 패킷을 던지면서 SO_BROADCAST Flag를 활성화해야합니까?

정말 도움이 되었습니까?

-hnx, DDPS.

답변

0

정상적인 DGRAM (SOCK_DGRM, IPPROTO_UDP)을 사용하여 보낼 수 없다고 생각합니다. OS가 먼저 대상을 찾기 위해 ARP를 전송하기 때문입니다. 원시 소켓 (SOCK_RAW, IPPROTO_RAW) 또는 심지어 (SOCK_RAW, htons (ETH_P_ALL))을 사용해야합니다. setsockopt는 IPHDRINCL을 사용합니다. 즉, IP 헤더를 직접 작성합니다. 그래서 OS는 당신을 위해 그것을 검사하지 않고 건설 된대로 보내지 않을 것입니다.