import_ips.pl 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #!/usr/bin/perl
  2. #
  3. # Copyright (C) Roman Dmitiriev, rnd@rajven.ru
  4. #
  5. #Import ip to user
  6. use utf8;
  7. use warnings;
  8. use Encode;
  9. use open qw(:std :encoding(UTF-8));
  10. no warnings 'utf8';
  11. use FindBin '$Bin';
  12. use lib "/opt/Eye/scripts";
  13. use Data::Dumper;
  14. use eyelib::config;
  15. use eyelib::main;
  16. use eyelib::database;
  17. use eyelib::net_utils;
  18. use strict;
  19. use warnings;
  20. sub add_auth {
  21. my $db = shift;
  22. my $comment = shift;
  23. my $ip = shift;
  24. my $user_id = shift;
  25. my $ip_aton=StrToIp($ip);
  26. my $record=get_record_sql($db,'SELECT id FROM User_auth WHERE `deleted`=0 AND `ip_int`='.$ip_aton);
  27. if ($record->{id}) { return $record->{id}; }
  28. my $user_record=get_record_sql($db,"SELECT * FROM User_list WHERE id=$user_id");
  29. my $new_record;
  30. $new_record->{ip_int}=$ip_aton;
  31. $new_record->{ip}=$ip;
  32. $new_record->{user_id}=$user_id;
  33. $new_record->{save_traf}="$save_detail";
  34. $new_record->{deleted}="0";
  35. $new_record->{created_by}='manual';
  36. $new_record->{ou_id}=$user_record->{ou_id};
  37. $new_record->{filter_group_id}=$user_record->{filter_group_id};
  38. $new_record->{queue_id}=$user_record->{queue_id};
  39. $new_record->{enabled}="$user_record->{enabled}";
  40. $new_record->{comments}=$comment;
  41. my $cur_auth_id=insert_record($db,'User_auth',$new_record);
  42. return $cur_auth_id;
  43. }
  44. my $user_id =$ARGV[0];
  45. exit if (!$user_id);
  46. print "Stage 0: Read ip list for user_id: $user_id\n";
  47. binmode(STDOUT,':utf8');
  48. if (-e "1") {
  49. my @nSQL=read_file("1");
  50. foreach my $row (@nSQL) {
  51. my ($user_name,$auth_ip) = split(/[\,|\;|\s]/,$row);
  52. next if (!$auth_ip);
  53. print "Add: $user_name $auth_ip";
  54. my $ret = add_auth($dbh,$user_name,$auth_ip,$user_id);
  55. if ($ret) { print "...OK\n"; } else { print "...Fail\n"; }
  56. }
  57. }
  58. print "Done!\n";
  59. exit;