我希望创建一个套接字,用于从数据链路层访问IPv4数据包。来自unix网络编程V1,
socket(PF_PACKET, SOCK_DGRAM, htons(ETH_P_IP))1)我正在实现dhcp客户端,这是正确的做法吗?(这意味着如果不访问数据链路层,我就无法从dhcp服务器接收答复)或者还有其他更简单的方法吗?也是这样,因为这个套接字将接收所有发送给我的系统的IPv4数据包,我应该如何区分dhcp应答包和其他数据包?。
2)请给我一个好的网络编程的链接/指导,用数据链路层访问。在上面的书中,没有详细的描述。
我是我的代码
发布于 2009-11-25 04:31:16
您也需要链接层头吗?如果是这样的话,您需要使用SOCK_RAW-SOCK_DGRAM将删除链接层头部,然后再将其提供给应用程序。
您可以通过源端口和目标端口标识DHCP请求,因为DHCP在UDP端口67和68上生成通信量。
发布于 2009-11-25 05:15:21
你试过看PCAP库了吗?它提供了很好的过滤功能的IP,端口和其他事情。
https://stackoverflow.com/questions/1794430
复制相似问题