| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- #!/usr/bin/perl
- #
- # Copyright (C) Roman Dmitiriev, rnd@rajven.ru
- #
- use FindBin '$Bin';
- use lib "$Bin/";
- use strict;
- use DBI;
- use Time::Local;
- use Net::Patricia;
- use Data::Dumper;
- use Date::Parse;
- use Socket;
- use Rstat::config;
- use Rstat::main;
- use Rstat::net_utils;
- use Rstat::mysql;
- use NetAddr::IP;
- setpriority(0,0,19);
- #get userid list
- my $user_auth_list = $dbh->prepare( "SELECT id,ip,mac,user_id FROM User_auth Where deleted=0 ORDER by id,ip_int,mac" );
- if ( !defined $user_auth_list ) { die "Cannot prepare statement: $DBI::errstr\n"; }
- $user_auth_list->execute;
- my $authlist_ref = $user_auth_list->fetchall_arrayref();
- $user_auth_list->finish();
- $dbh->disconnect;
- my %nethash;
- foreach my $net (@all_network_list) {
- $nethash{$net}{network}= new Net::Patricia;
- $nethash{$net}{network}->add_string($net);
- }
- foreach my $row (@$authlist_ref) {
- my $id=$row->[0];
- my $ip=$row->[1];
- my $mac=mac_splitted($row->[2]);
- my $user_id=$row->[3];
- foreach my $net (keys %nethash) {
- if ($nethash{$net}{network}->match_string($ip)) {
- if (exists $nethash{$net}{$mac}) {
- print "Dup found! id:$id mac: $mac ip:$ip First id: $nethash{$net}{$mac}{id} ip: $nethash{$net}{$mac}{ip}\n";
- last;
- }
- $nethash{$net}{$mac}{id}=$id;
- $nethash{$net}{$mac}{ip}=$ip;
- last;
- }
- }
- }
- exit 0;
|