print-ou-ip.pl 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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::net_utils;
  20. use eyelib::database;
  21. use eyelib::common;
  22. my $OU_ID=$ARGV[0];
  23. my $ou_filter=" and L.ou_id=$OU_ID ";
  24. if (!$OU_ID) { $ou_filter=''; }
  25. #get userid list
  26. 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" );
  27. if ( !defined $user_auth_list ) { die "Cannot prepare statement: $DBI::errstr\n"; }
  28. $user_auth_list->execute;
  29. # user auth list
  30. my $authlist_ref = $user_auth_list->fetchall_arrayref();
  31. $user_auth_list->finish();
  32. $dbh->disconnect;
  33. foreach my $row (@$authlist_ref) {
  34. next if (!$row);
  35. my $ip=trim($row->[0]);
  36. my $ip_int=trim($row->[1]);
  37. my $dns_name=trim($row->[2]);
  38. next if (!$ip_int);
  39. next if (!$ip);
  40. my $default_name;
  41. if ($dns_name) { $default_name=$dns_name; } else {
  42. $default_name = $ip;
  43. $default_name =~s/192.168.//g;
  44. $default_name =~s/10.1.//g;
  45. }
  46. $default_name =~s/_/-/g;
  47. $default_name =~s/[.]/-/g;
  48. $default_name =~s/ /-/g;
  49. print $ip.' '.$default_name."\n";
  50. }
  51. exit 0;