我正在用perl解析一个pcap文件。我有要求和回应。我想找到所有未完成的交易(请求没有响应)。我的请求看起来像 ReqInfo,ReqData,ReqMsg和响应RespInfo,RespData,RespMsg。我已经完成了Req和Resp的基本计数。请求的数量大于响应1.它是大文件,无法确定错过了哪个请求。我只管理了
perl -lne 'END {print $c} map ++$c, /ReqInfo/g' file.pcap
请求和响应由transactionID绑定。我计划在每次成功的ReqInfo之后将transactionID添加到数组,并在每次RespInfo匹配后从数组中删除transactionID。在整个搜索之后,我期望数组具有所有孤立事务ID的列表。因为它是pcap文件,所以没有带分隔符的规则。我可以在单行中使用一堆Req,或者在单独的行中使用每个Req,或者在多行中使用碎片数据
我正在寻找在ReqInfo之后找到第一次出现的transactionID的方法。我可以在一行中使用一堆ReqInfo,或者在单独的行中使用每个ReqInfo,或者在多行中包含碎片数据
答案 0 :(得分:1)
在找到请求时,
++$c{$tran_id}
在找到回复时,
--$c{$tran_id}