Net::Tshark had what amounts to a single release two years ago and has no tests. That makes it hard to tell how reliable that module is.
not sure it's correct way to get mss options
Have you tried looking at the data structure with Data::Dumper?
map {$_ ->{mss}->{1500} } ...
Without knowing the data structure, I'm going to wager a guess that maybe you need to do something like grep { $_->...->{mss}==1500 } @packets, where ... depends on the data structure you see with Data::Dumper.
However, I'm still not sure why you're not simply doing something like this, where you are free to customize the display filter and output format without some module in between:
my @cmd = ('tshark','-r',$PCAPFILE, qw# -R tcp.options.mss -T fields -e ip.src -e tcp.srcport -e ip.dst -e tcp.dstport -e tcp.options.mss_val #); open my $ts, '-|', @cmd or die "Error opening pipe: $!"; while(<$ts>) { chomp; my ($src_addr,$src_port,$dst_addr,$dst_port,$mss) = split /\t/; print "$src_addr:$src_port -> $dst_addr:$dst_port MSS=$mss\n"; } close $ts or die $! ? "Error closing pipe: $!" : "Exit status \$?=$? from pipe";
(Or, look at IPC::Run to execute tshark, which is all that Net::Tshark is doing anyway.)
In reply to Re^3: filter tcpdump packets
by Anonymous Monk
in thread filter tcpdump packets
by syboar
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |