基本上希望完全使用Tshark做的事情
tshark -r mysample.pcapng.gz -2 -Tfields -R ip -eip.src -eip.dst -eframe.protocols
使用perl ...所以从k12文本文件中提取 (文本文件中的信息示例)
+---------+---------------+----------+
02:25:41,660,101 ETHER
|0 |ff|ff|ff|ff|ff|ff|b4|b6|76|53|9d|a0|08|00|45|00|00|4e|4f|85|00|00|80|11|68|b3|c0|a8|00|17|c0|a8|00|ff|
00|89|00|89|00|3a|74|68|c6|2a|01|10|00|01|00|00|00|00|00|00|20|46|48|46|41|45|42|45|45|43|41|43|41|43|41|43|41|43|41|43|41|43|41|43|41|43|41|43|41|43|41|41|41|00|00|20|00|01|
我的代码分裂并分类成异形,只是为了生活,我甚至无法开始。基本上需要删除所有内容到第二个“|”接下来的6个部分(用“|”分隔)是目标IP,接下来的6个是源IP然后接下来的2个是协议类型,然后转换为二进制。
如果有人为此写了任何简单的内容,我将非常感谢你看一下。这是一个班级工作,为证券课。
原始来源 Wireshark Display Filter for Unique Source/Destination IP and Protocol
答案 0 :(得分:0)
您只需要一个能够创建可用于比较条目的键的函数:
# untested
sub key {
my $line = shift;
my @key = (split /\|/, $line)[2..7, 8..13, 14..15];
return join '-', @key;
}
sub sort_lines {
my @lines = @_;
return sort { key($a) cmp key($b) } @lines;
}
BTW,无需转换为二进制,比较十六进制表示也是正确的。