欲用于从数据链路层访问IPv4报文创建套接字。从UNIX网络编程V1,

socket(PF_PACKET, SOCK_DGRAM, htons(ETH_P_IP))

1)我实现一个DHCP客户端,这是这样做的正确方法是什么? (装置无需访问数据链路层,我不能接收来自DHCP服务器回复)或是否有任何其他更简单的方法? 同时,因为这个套接字会收到发往我的系统的所有IPv4数据包,我应该如何从其他数据包区分DHCP应答数据包?

2)请建议我要与数据链路层访问 网络编程良好链路/ tuorial。另外,在上述的书,它不详细说明。

这是我的代码

有帮助吗?

解决方案

你需要在链路层报头呢?如果是这样,你需要使用SOCK_RAW-SOCK_DGRAM将其送入您的应用程序之前删除的链路层头。

可以由源和目的端口标识DHCP请求,因为DHCP上UDP端口67和68产生的流量。

其他提示

你有没有试过看PCAP库? 它提供IP,端口等美好的东西过滤功能。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top