#!/usr/bin/perl
use lib qw(blib/arch blib/lib ../blib/arch ../blib/lib );
use warnings;
use strict;
use NetworkInfo::Discovery;
use NetworkInfo::Discovery::Register;
use NetworkInfo::Discovery::Sniff;
use NetworkInfo::Discovery::Traceroute;
my $d = new NetworkInfo::Discovery::Register ('file' => 'sample.register', 'autosave' => 1)
|| warn ("failed to make new obj");
my $s = new NetworkInfo::Discovery::Sniff;
$s->maxcapture(10);
$s->do_it;
$d->add_interface($_) for ($s->get_interfaces);
my @traced;
foreach my $h ($s->get_interfaces) {
(print "----- already traced to " . $h->{ip} . "\n" && next ) if (grep { $_ eq $h->{ip} } @traced);
print "Tracing to " . $h->{ip} . "\n";
push (@traced, $h->{ip});
my $t = new NetworkInfo::Discovery::Traceroute (host=>$h->{ip});
$t->do_it;
$d->add_interface($_) for ($t->get_interfaces);
$d->add_gateway($_) for ($t->get_gateways);
}
$d->write_register;
$d->print_register;