#
sub read_packet
{
# Ethernet
my $key=ReadKey(-1);
my ($arg, $hdr, $pkt)=@_;
my $eth_obj=NetPacket::Ethernet->decode($pkt);
$main::proto = "ether";
$dbh->do("insert into etherpkt (eth_type, eth_srcmac, eth_destmac)
values ('$eth_obj->{type}','$eth_obj->{src_mac}','$eth_obj->{dest_mac}')
");
# Ether Type = IP
if ($eth_obj->{type}==ETH_TYPE_IP)
{
# Determine IP Protocol within IP
use NetPacket::Ethernet qw(:strip);
use NetPacket::IP;
my $ip_obj=NetPacket::IP->decode(eth_strip($pkt));
$main::proto = "ip";
$dbh->do("insert into ippkt (pid, ip_ver, ip_hlen, ip_flags, ip_foffset, ip_tos, ip_len, ip_id, ip_ttl, ip_proto, ip_cksum, ip_srcip, ip_dstip)
values (LAST_INSERT_ID(),'$ip_obj->{ver}','$ip_obj->{hlen}','$ip_obj->{flags}','$ip_obj->{foffset}','$ip_obj->{tos}','$ip_obj->{len}','$ip_obj->{id}','$ip_obj->{ttl}','$ip_obj->{proto}','$ip_obj->{cksum}','$ip_obj->{src_ip}','$ip_obj->{dest_ip}')
");
# ICMP
if ($ip_obj->{proto}==IP_PROTO_ICMP)
{
my $icmp_obj = NetPacket::ICMP->decode($pkt);
上一页 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1920 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- |
注册
个人空间
