Filter 有线显示滤波器;按位比较

Filter 有线显示滤波器;按位比较,filter,wireshark,tshark,Filter,Wireshark,Tshark,给定一个pcap文件,我想根据ip.src上的位比较将数据包分成四组,只比较ip中的两个特定位。例如,我想对IP的第二个字节和最后两个字节进行比较。因此,比较如下: a = xxxxxxxx & 0x03 //It is 8bits. Hence a includes 000000xx IF (a == 0x00) THEN set0 IF (a == 0x01) THEN set1 IF (a == 0x02) THEN set2 IF (a == 0x03) THEN set3 不

给定一个pcap文件,我想根据ip.src上的位比较将数据包分成四组,只比较ip中的两个特定位。例如,我想对IP的第二个字节和最后两个字节进行比较。因此,比较如下:

a = xxxxxxxx & 0x03 //It is 8bits. Hence a includes 000000xx
IF (a == 0x00) THEN set0
IF (a == 0x01) THEN set1
IF (a == 0x02) THEN set2
IF (a == 0x03) THEN set3
不幸的是,只有按位_和选项可用。我不能在IP上做位运算。有什么解决办法吗

我想到的是使用以下命令四次,每次使用相应的显示过滤器

tshark -r <infile> -Y "<display-filter>" -w <outfile>
tshark-r-Y'-w

在wireshark中,打开PCAP文件并使用如下显示过滤器:

!(ip[12] & 0x01) and !(ip[12] & 0x02)
(ip[12] & 0x01) and !(ip[12] & 0x02)
!(ip[12] & 0x01) and (ip[12] & 0x02)
(ip[12] & 0x01) and (ip[12] & 0x02)
第一个匹配最后两位的0b00,第二个匹配0b01,第三个匹配0b10,最后一个匹配0b11

如果需要其他位,则最高有效位将为0x04、0x08、0x10、0x20、0x40和0x80。“&”与按位_和相同


匹配每个数据包后,使用文件->导出指定的数据包,并确保标记显示的选项。这是一种根据需要将文件拆分为4组的方法。

谢谢。成功了。最后,我为我的应用程序使用了以下显示过滤器(左起第二个字节中的第三位和第四位):“!(ip.src[1]==0x10)和!(ip.src[1]==0x20)”并重复了三次这种样式。