print-ou-ip.pl 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #!/usr/bin/perl
  2. #
  3. # Copyright (C) Roman Dmitiriev, rnd@rajven.ru
  4. #
  5. use utf8;
  6. use warnings;
  7. use Encode;
  8. use open qw(:std :encoding(UTF-8));
  9. no warnings 'utf8';
  10. use FindBin '$Bin';
  11. use lib "/opt/Eye/scripts";
  12. use strict;
  13. use DBI;
  14. use Time::Local;
  15. use Net::Patricia;
  16. use Data::Dumper;
  17. use eyelib::config;
  18. use eyelib::main;
  19. use eyelib::logconfig;
  20. use eyelib::net_utils;
  21. use eyelib::database;
  22. use eyelib::common;
  23. my $OU_ID=$ARGV[0];
  24. my $ou_filter=" and L.ou_id=$OU_ID ";
  25. if (!$OU_ID) { $ou_filter=''; }
  26. #get userid list
  27. my $user_auth_list = $dbh->prepare( "SELECT A.ip,A.ip_int,A.dns_name FROM user_auth as A, user_list as L where L.id=A.user_id and A.deleted=0 $ou_filter ORDER by ip_int" );
  28. if ( !defined $user_auth_list ) { die "Cannot prepare statement: $DBI::errstr\n"; }
  29. $user_auth_list->execute;
  30. # user auth list
  31. my $authlist_ref = $user_auth_list->fetchall_arrayref();
  32. $user_auth_list->finish();
  33. $dbh->disconnect;
  34. foreach my $row (@$authlist_ref) {
  35. next if (!$row);
  36. my $ip=trim($row->[0]);
  37. my $ip_int=trim($row->[1]);
  38. my $dns_name=trim($row->[2]);
  39. next if (!$ip_int);
  40. next if (!$ip);
  41. my $default_name;
  42. if ($dns_name) { $default_name=$dns_name; } else {
  43. $default_name = $ip;
  44. $default_name =~s/192.168.//g;
  45. $default_name =~s/10.1.//g;
  46. }
  47. $default_name =~s/_/-/g;
  48. $default_name =~s/[.]/-/g;
  49. $default_name =~s/ /-/g;
  50. print $ip.' '.$default_name."\n";
  51. }
  52. exit 0;