标签:
注意(文中描述的内容):
此外,这段BPF代码还存在的一个问题是,一般情况下tcpdump只返回所捕获包的头96字节,也就是0×60字节,可见代码的倒数第二行是ret #96。对于需要完整的包处理还是不行的,因此你需要将其设置为0×0000ffff,或者在用tcpdump生成的时候用tcpdump -s 65535 -dd … 来生成
1、我的tcpdump 生成BPF code时,长度直接就是0x0000ffff 而非0x60,可能与tcpdump版本有关系
[root@dvrdvs nfs] # ./tcpdump udp -dd device eth0 entered promiscuous mode { 0x28, 0, 0, 0x0000000cdevice eth0 left promiscuous mode }, { 0x15, 0, 5, 0x000086dd }, { 0x30, 0, 0, 0x00000014 }, { 0x15, 6, 0, 0x00000011 }, { 0x15, 0, 6, 0x0000002c }, { 0x30, 0, 0, 0x00000036 }, { 0x15, 3, 4, 0x00000011 }, { 0x15, 0, 3, 0x00000800 }, { 0x30, 0, 0, 0x00000017 }, { 0x15, 0, 1, 0x00000011 }, { 0x6, 0, 0, 0x0000ffff }, { 0x6, 0, 0, 0x00000000 }, [root@dvrdvs nfs] # ./tcpdump -dd ether proto 0x8033 device eth0 entered promiscuous mode { 0x28, 0, 0, 0xdevice eth0 left promiscuous mode 0000000c }, { 0x15, 0, 1, 0x00008033 }, { 0x6, 0, 0, 0x0000ffff }, { 0x6, 0, 0, 0x00000000 }, [root@dvrdvs nfs] # ./tcpdump --help ./tcpdump: invalid option -- - tcpdump version 4.5.1 libpcap version 1.5.2
标签:
原文地址:http://www.cnblogs.com/jingzhishen/p/5777616.html