0

出力から csv ファイルを取得しようとしています。

 use Net::Cisco::ISE;
 use Data::Dumper;
 use Text::CSV;

 my $ise = Net::Cisco::ISE->new(hostname=>'hostname', username=>'user', password=>'user');  
 $ise->namespace3;
 $ise->namespace5;

 my $networkdevices = $ise->networkdevices;
 for my $name (keys %{$networkdevices})
    {
       print   Dumper $ise->networkdevices("id" => $networkdevices->{$name}->id);
    }

出力:

     $VAR1 = bless( {
             'NetworkDeviceGroupList' => {
                                           'NetworkDeviceGroup' => [
                                                                   'Device Type#All Device Types',
                                                                   'IPSEC#Is IPSEC Device#No',
                                                                   'Location#All Locations'
                                                                 ]
                                         },
             'tacacsSettings' => {
                                   'previousSharedSecretExpiry' => '0',
                                   'connectModeOptions' => 'OFF',
                                   'sharedSecret' => '******'
                                 },
             'NetworkDeviceIPList' => {
                                        'NetworkDeviceIP' => {
                                                             'mask' => '24',
                                                             'ipaddress' => '10.66.0.0'
                                                           }
                                      },
             'name' => 'LAB-Distri',
             'coaPort' => '1700',
             'authenticationSettings' => {
                                           'radiusSharedSecret' => '******',
                                           'keyInputFormat' => 'ASCII',
                                           'enableKeyWrap' => 'false',
                                           'networkProtocol' => 'RADIUS'
                                         },
             'profileName' => 'Cisco',
             'id' => '3d21e200-a534-11e3-82cc-00505694f123'
           }, 'Net::Cisco::ISE::NetworkDevice' );

このスクリプトは、コンソールにウィッチ要素 (ipadress と名前) を表示するはずですが、機能しません。

   foreach $name (keys %{$networkdevices}){
   print  
   my $ip = $networkdevices{$name}{'ipaddress'};
   my $name = $networkdevices{$name}{'name'};
   }

最後に、デバイスの名前と IP アドレスを含む csv ファイルが必要です。


現在、私は 2 つの方法のみを使用しています:NameNetworkDeviceIPList(出力情報をきれいにするためだけに)。残念ながら、 ips だけを取得するNet::Cisco::ISE方法はありません。IPs呼び出しNetworkDeviceIPListて取得できます:

 for my $name (keys %{$networkdevices}){
 my $device = $ise->networkdevices("id" => $networkdevices->{$name}->id);
 print Dumper $device->name;
 print Dumper $device->NetworkDeviceIPList;
 }

そして、私はこの出力を持っています:

 $VAR1 = 'LAB-W';
 $VAR1 = {
    'NetworkDeviceIP' => {
    'mask' => '32',
    'ipaddress' => '10.66.1.12'
  }
  };

しかし、この出力 csv データから名前と ips の配列を取得する方法がわかりません。

4

1 に答える 1