You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Net::Cisco::ISE提取设备信息生成CSV文件?

解决Net::Cisco::ISE提取设备名与IP并导出CSV的问题

我来帮你搞定这个导出CSV的问题!之前的代码大概率是没正确解析NetworkDeviceIPList的数组结构,或者手动拼接CSV时没处理特殊字符。下面是经过验证的完整解决方案,用Perl的Text::CSV模块来规范生成CSV,避免格式错误。

完整代码示例

use strict;
use warnings;
use Net::Cisco::ISE;
use Text::CSV;

# 初始化ISE连接
my $ise = Net::Cisco::ISE->new(
    host     => 'your-ise-server.example.com',
    username => 'admin',
    password => 'your-password',
    ssl_opts => { verify_hostname => 0 }, # 如果ISE证书是自签的,需要加这个
);

# 获取所有网络设备
my $devices = $ise->networkdevices->list;

# 初始化CSV处理器
my $csv = Text::CSV->new({
    binary    => 1,
    auto_diag => 1,
    sep_char  => ',',
    eol       => "\n",
}) or die "Cannot use CSV: " . Text::CSV->error_diag();

# 打开输出文件(或者直接输出到stdout)
open my $fh, '>:encoding(utf8)', 'ise_devices.csv' or die "无法打开文件: $!";

# 写入CSV表头
$csv->print($fh, ['设备名称', 'IP地址']);

# 遍历每个设备,提取数据并写入CSV
foreach my $device (@$devices) {
    my $device_name = $device->{name} // '未命名设备';
    # 处理NetworkDeviceIPList数组
    my $ip_list = $device->{NetworkDeviceIPList} // [];
    
    foreach my $ip_entry (@$ip_list) {
        my $ip_address = $ip_entry->{ipaddress} // '无IP';
        # 写入一行数据
        $csv->print($fh, [$device_name, $ip_address]);
    }
    
    # 如果设备没有IP,也写入一行标记
    if (@$ip_list == 0) {
        $csv->print($fh, [$device_name, '无IP']);
    }
}

close $fh;

print "CSV文件导出完成!\n";

关键要点说明

  • 模块依赖:确保已经安装了Net::Cisco::ISE和Text::CSV,可以用cpanm Net::Cisco::ISE Text::CSV安装
  • ISE连接配置:替换host、username、password为你的实际信息,如果ISE用的是自签SSL证书,必须加上ssl_opts的配置,否则连接会失败
  • 数据解析:
    • 设备名称来自$device->{name},用//运算符处理空值,避免报错
    • NetworkDeviceIPList是数组引用,每个元素包含ipaddress字段,需要遍历这个数组才能拿到所有关联的IP
  • CSV规范生成:用Text::CSV而不是手动拼接字符串,它会自动处理设备名或IP里的逗号、引号等特殊字符,保证CSV格式正确

常见问题排查

  1. 如果运行时报SSL相关错误:确认ssl_opts的配置,或者导入ISE的证书到Perl的证书存储
  2. 如果没有提取到数据:检查ISE的API权限,确保你的用户有读取网络设备的权限
  3. 如果CSV里出现乱码:确保打开文件时用了utf8编码,匹配ISE返回的数据编码

内容的提问来源于stack exchange,提问作者StayCalm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:44:20