1
0

print_devices_oxi.pl 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #!/usr/bin/perl
  2. #
  3. # Copyright (C) Roman Dmitiriev, rnd@rajven.ru
  4. #
  5. use utf8;
  6. use FindBin '$Bin';
  7. use lib "$Bin/";
  8. use strict;
  9. use DBI;
  10. no if $] >= 5.018, warnings => "experimental::smartmatch";
  11. use Data::Dumper;
  12. use Socket;
  13. use eyelib::config;
  14. use eyelib::main;
  15. use eyelib::mysql;
  16. my @router_list = get_records_sql($dbh,"SELECT * FROM devices WHERE device_type<=2" );
  17. foreach my $device (@router_list) {
  18. next if (!$device->{password} or !$device->{login});
  19. $device = netdev_set_auth($device);
  20. my $oxi_model = 'dcnos';
  21. my $vendor = get_record_sql($dbh,"SELECT * FROM vendors WHERE id=".$device->{vendor_id});
  22. my $model = get_record_sql($dbh,"SELECT * FROM `device_models` WHERE id=".$device->{device_model_id});
  23. my $building = get_record_sql($dbh,"SELECT * FROM building WHERE id=".$device->{building_id});
  24. if ($vendor->{name} =~/zyxel/i) { $oxi_model = 'zynoscli'; }
  25. if ($vendor->{name} =~/snr/i) { $oxi_model = 'dcnos'; }
  26. if ($vendor->{name} =~/huawei/i) { $oxi_model = 'vrp'; }
  27. if ($vendor->{name} =~/eltex/i) { $oxi_model = 'eltex'; }
  28. if ($vendor->{name} =~/raisecom/i) { $oxi_model = 'raisecom'; }
  29. if ($vendor->{name} =~/mikrotik/i) { $oxi_model = 'routeros'; }
  30. if ($vendor->{name} =~/maipu/i) { $oxi_model = 'maipu'; }
  31. if ($vendor->{name} =~/d[\-*]link/i) { $oxi_model = 'dlink'; }
  32. if ($vendor->{name} =~/tp[\-*]link/i) { $oxi_model = 'tplink'; }
  33. if ($vendor->{name} =~/hp/i) { $oxi_model = 'comware'; }
  34. if ($vendor->{name} =~/Allied Telesis/i) { $oxi_model = 'awplus'; }
  35. if ($oxi_model =~/awplus/ and $model->{model_name}=~/AT-8000/i) { $oxi_model = 'powerconnect'; }
  36. my $proto = 'telnet';
  37. if ($device->{protocol} eq '0') { $proto = 'ssh'; }
  38. my $location = $building->{name};
  39. my $enable_password = '';
  40. if ($vendor->{name} !~ /mikrotik/i) { $enable_password = $device->{password}; }
  41. print $device->{device_name}.":".$device->{ip}.":".$device->{login}.":".$device->{password}.":".$oxi_model.":".$device->{control_port}.":".$proto.":".$location.":".$enable_password."\n";
  42. }
  43. $dbh->disconnect;
  44. exit 0;