问题描述
在运用libnids库对http等应用层协议的数据进行抓包时,发现没有数据,但是wireshark是有数据的,首先是代码上应该是没有问题的,那么问题在哪?
解决方案
发现libnid的抓包过程中会自动的将没有计算校验和的数据包进行抛弃,所以就没有显示数据,这里只需要让libnid忽略这种丢弃即可。
在main函数中添加以下代码即可:
struct nids_chksum_ctl temp;
temp.netaddr = 0;
temp.mask = 0;
temp.action = 1;
nids_register_chksum_ctl(&temp,1);=
在命令后可以家 |more 用以避免数据太多而导致前面的数据没有显示。