访问数据链路层的数据包
-
22-09-2019 - |
题
欲用于从数据链路层访问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,端口等美好的东西过滤功能。
不隶属于 StackOverflow