0

データリンク層からIPv4パケットにアクセスするためのソケットを作成したいと思います。unixネットワークプログラミングV1から

socket(PF_PACKET, SOCK_DGRAM, htons(ETH_P_IP))

1)dhcpクライアントを実装していますが、これは正しい方法ですか?(データリンク層にアクセスしないと、dhcpサーバーから応答を受信できないことを意味します)または他のより簡単な方法はありますか? また、このソケットは自分のシステム宛てのすべてのIPv4パケットを受信するため、dhcp応答パケットを他のパケットとどのように区別する必要がありますか?

2)データリンク層アクセスを使用したネットワークプログラミングに適したリンク/チュートリアルを提案してください。上記の本では、詳細な説明ではありません。

これは私のコードです

4

2 に答える 2

2

PCAPライブラリを見てみましたか?IP、ポートなどで優れたフィルタリング機能を提供します。

于 2009-11-25T05:15:21.317 に答える
1

リンク層ヘッダーも必要ですか?その場合は、次を使用する必要がありますSOCK_RAW— <code> SOCK_DGRAMは、アプリケーションにフィードする前にリンク層ヘッダーを削除します。

DHCPはUDPポート67および68でトラフィックを生成するため、送信元ポートと宛先ポートでDHCP要求を識別できます。

于 2009-11-25T04:31:16.430 に答える