在输出数据包中纠正libpcap中的过滤器表达式
问题描述:
我只想从我的系统中嗅探传出的'TCP-ACK'数据包。因此,我把我的过滤器表达我的lib-pcap
程序为:在输出数据包中纠正libpcap中的过滤器表达式
char filter_exp[] = "src host 172.16.0.1 and tcp[tcpflags] & (tcp-syn | tcp-fin | tcp-rst | tcp-psh) == 0";
但它显示了在运行时作为LIB-PCAP语法错误:
无法解析过滤器SRC主机172.16.0.1和TCP [tcpflags]和(TCP-SYN | TCP翅| TCP-RST | TCP-PSH)== 0:语法错误
谁能告诉这里有什么错的,什么将是这个正确的过滤器体现在哪里?
我从here得到了语法(在示例部分)。
答
语法不正确,因为tcp-psh
不是有效的语法。正确的是tcp-push
。所以正确的过滤器表达式将是:
char filter_exp[] = "src host 172.16.0.1 and tcp[tcpflags] & (tcp-syn | tcp-fin | tcp-rst | tcp-push) == 0";