setfilter($pcap,$filter) or die "setfilter:@{[geterr($pcap)]}";
print map {"$_=$ptk_headr{$_}\n"}keys %ptk_headr;
$SIG{INT}=sub{
Net::Pcap::stats($pcap,\%stats);
Net::Pcap::close($pcap);
print map {"$_=$stats{$_}\n"}keys %stats;
exit
};
#datalink($pcap)!=DLT_EN10MB && last;
print <<"EOF";
listening on $dev, link-type @{[datalink_val_to_name(datalink($pcap))]} (@{[datalink_val_to_description(datalink($pcap))]}), capture size $capture bytes
EOF
$dumper=dump_open($pcap, $dumpfile) or die "dump_open:$!\n" if $opts{w};
for(;;)
{
$packet=pcap_next($pcap,\%ptk_headr);
$opts{w} && Net::Pcap::dump($dumper,\%ptk_headr,$packet);
$eth_obj=NetPacket::Ethernet->decode($packet);
showetherhead $eth_obj;
if($eth_obj->{type}==ETH_TYPE_IP) {
$ip_obj=NetPacket::IP->decode(eth_strip($packet));
showiphead $ip_obj;
if($ip_obj->{proto}==IP_PROTO_TCP) {
#$tcp_obj = NetPacket::TCP->decode(ip_strip(eth_strip($packet)));
$tcp_obj = NetPacket::TCP->decode($ip_obj->{data});
showtcphead $tcp_obj;
}elsif($ip_obj->{proto}==IP_PROTO_UDP){
$udp_obj = NetPacket::UDP->decode($ip_obj->{data});
showudphead $udp_obj;
}elsif($ip_obj->{proto}==IP_PROTO_ICMP){
$icmp_obj=NetPacket::ICMP->decode($ip_obj->{data});
showicmphead $icmp_obj;
上一页 1 2 3 4 5 6 78 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 下一页
| 论坛热门帖子: | [lch203] 写得蛮好的linux学习笔记(10-21) [黑马制造] 学习java的30个目标(10-19) [笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19) [udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18) [沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18) |
| TAG标签: | 格式 图解 my ip_obj- eth_obj- main::proto ip- tcp- |
注册
个人空间
