PERL脚本ARP抓包

#!/usr/bin/perl -w
# Author: ruiqingzheng@gmail.com

use strict;
use Net::Frame::Simple;
use Net::Frame::Dump::Online;
use Net::ARP;
use Net::Frame::Device;

use Getopt::Std;
my %opts;
getopts('i:v', \%opts);

die("Usage: $0\n".
        "\n".
        "-i interface\n".
        "-v be verbose\n".
        "") unless $opts{i};

my $device = Net::Frame::Device->new;
my $onRecvCount = 100;

#print $device -> dev;
my $oDumpEvent = Net::Frame::Dump::Online -> new(
        dev => $device ->dev ,
        filter => 'arp',
        onRecv => \&callOnRecv,
        onRecvCount => $onRecvCount,
        onRecvData => 'description',
);

sub callOnRecv {
        my ($h,$data) = @_;
        #print "\nDescription: $data\n";
        my $oSimple = Net::Frame::Simple -> newFromDump($h);
        my $srcIp = $oSimple -> ref -> {ARP} -> srcIp;
        my $dstIp = $oSimple -> ref -> {ARP} -> dstIp;
        my $opCode = $oSimple -> ref->{ARP} -> opCode;
        print $opCode . " from ".$srcIp ." To ".$dstIp."\n";
        print $oSimple -> print . "\n" if $opts{v};
        print "\n";
}

$oDumpEvent -> start();

运行效果:
root@juey-laptop:~/code# ./capArp.pl -i eth0 -v
1 from 192.168.1.111 To 192.168.1.117
ETH: dst:ff:ff:ff:ff:ff:ff  src:00:13:8f:2e:79:73  type:0x0806
ARP: hType:0x0001  pType:0x0800  hSize:0x06  pSize:0x04  opCode:0x0001
ARP: src:00:13:8f:2e:79:73  srcIp:192.168.1.111
ARP: dst:00:00:00:00:00:00  dstIp:192.168.1.117
Padding: 000000000000000000000000000000000000

1 from 192.168.1.111 To 192.168.1.116
ETH: dst:ff:ff:ff:ff:ff:ff  src:00:13:8f:2e:79:73  type:0x0806
ARP: hType:0x0001  pType:0x0800  hSize:0x06  pSize:0x04  opCode:0x0001
ARP: src:00:13:8f:2e:79:73  srcIp:192.168.1.111
ARP: dst:00:00:00:00:00:00  dstIp:192.168.1.116
Padding: 000000000000000000000000000000000000

1 from 192.168.1.111 To 192.168.1.115
ETH: dst:ff:ff:ff:ff:ff:ff  src:00:13:8f:2e:79:73  type:0x0806
ARP: hType:0x0001  pType:0x0800  hSize:0x06  pSize:0x04  opCode:0x0001
ARP: src:00:13:8f:2e:79:73  srcIp:192.168.1.111
ARP: dst:00:00:00:00:00:00  dstIp:192.168.1.115
Padding: 000000000000000000000000000000000000



<script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/buttonLite.js#style=-1&uuid=&pophcol=3&lang=zh"></script> <script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/bshareC0.js"></script>
阅读(1198) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值