我想只从我的系统中嗅出传出的“TCP-ACK”数据包。因此,我在我的lib-pcap
程序中将我的过滤器表达式设置为:
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-fin | tcp-rst | tcp-psh)== 0:语法错误
任何人都可以告诉我这里有什么问题吗?这个的正确过滤表达式是什么?
我从here获得了语法(在示例部分中。)。
答案 0 :(得分:0)
语法不正确,因为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";