#!/usr/bin/perl -Tw
use constant EMAIL => 'email@yourdomain.com';
use constant SERVER => 'mail.yourdomain.com';
use Net::PcapUtils;
use Net::SMTP;
use NetPacket::ARP;
use NetPacket::Ethernet qw/:types/;
use strict;
my %ether;
my $mail = Net::SMTP->new(SERVER);
Net::PcapUtils::loop(
sub {
my ($arg, $header, $packet) = @_;
my $ethernet = NetPacket::Ethernet->decode($packet);
if ($ethernet->{'type'} == ETH_TYPE_ARP) {
my $arp = NetPacket::ARP->decode($ethernet->{'data'}, $eth
+ernet);
my $ip = join '.', map { hex } ($arp->{'spa'} =~ /([[:xdig
+it:]]{2})/g);
my $mac = join ':', ($arp->{'sha'} =~ /([[:xdigit:]]{2})/g
+);
if ((exists $ether{$ip}) && ($ether{$ip} ne $mac)) {
$mail->to(EMAIL);
$mail->mail('root@yourdomain.com');
$mail->data;
$mail->datasend("There has been a change in the MAC ad
+dress associated with IP address ", $ip, "!\n\n");
$mail->datasend(" Previous hardware MAC address ->
+", $ether{$ip}, "\n");
$mail->datasend(" Current hardware MAC address -> "
+, $mac, "\n");
$mail->dataend;
$mail->quit;
}
$ether{$ip} = $mac;
}
},
'DEV' => 'eth0'
);
In reply to ARP Watch
by rob_au
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.