-2

BOOTP/DHCP パケットで IP アドレスを送信するだけのカスタマイズされた DHCP サーバーを実装しようとしています。受信した DISCOVER パケットの解析が完了しました。構造体を埋めた後。sendto機能を介してOFFERパケットを送信できません。OFFER パケットは、宛先アドレスがクライアント マシンに与える予定の IP であるユニキャスト パケットのようです。

少し混乱しています。存在しない IP アドレスに対して通常の DGRAM ソケットを使用して DHCP OFFER パケットをスローする方法は?? また; Packet をスローするときに SO_BROADCAST フラグを有効にする必要がありますか?

どんな助けでも本当に感謝しています!!!

-Thnx、DDPS。

4

1 に答える 1

0

通常のDGRAM(SOCK_DGRM, IPPROTO_UDP)で送信してもダメだと思います。OS は最初に ARP を送信して宛先を特定するためです。raw ソケット (SOCK_RAW、IPPROTO_RAW)、または (SOCK_RAW、htons(ETH_P_ALL)) を使用する必要があります。および IPHDRINCL を指定した setsockopt。これは、IP ヘッダーを自分で入力することを意味します。そのため、OS はそれをチェックせず、構築されたまま送信します。

于 2013-05-12T05:31:47.517 に答える