C语言中DHCP包的识别
Identification of a DHCP packet in C
我正在尝试用 C 编写数据包嗅探器。为了识别 ARP 数据包,我定义了一个结构,其中 16 位整数给我一个十六进制值,我可以将其与 ARP 的库定义进行比较,即 ETH_P_ARP 从那里我可以确认数据包是否是 ARP。
结构:
struct ethernet {
unsigned char dest[6];
unsigned char source[6];
uint16_t eth_type;};
我想为 DHCP 做类似的事情,但我无法识别它。
查找端口 67(服务器)和 68(客户端)之间的 UDP 流量。有关数据包编码的详细信息,请参阅 this Wikipedia entry。
我正在尝试用 C 编写数据包嗅探器。为了识别 ARP 数据包,我定义了一个结构,其中 16 位整数给我一个十六进制值,我可以将其与 ARP 的库定义进行比较,即 ETH_P_ARP 从那里我可以确认数据包是否是 ARP。
结构:
struct ethernet {
unsigned char dest[6];
unsigned char source[6];
uint16_t eth_type;};
我想为 DHCP 做类似的事情,但我无法识别它。
查找端口 67(服务器)和 68(客户端)之间的 UDP 流量。有关数据包编码的详细信息,请参阅 this Wikipedia entry。