我想写一个perl脚本,通过telnetlogin到cisco交换机,并parsingshow mac-address-table的输出。 问题是,不同的开关显示我不同的字段布局。
WS-C3548-XL按顺序显示字段
Destination Address Address Type VLAN Destination Port
而C2960则显示它的样子
Vlan Mac Address Type Ports
有没有办法告诉show以预定义的顺序打印字段?
使用SNMP轮询设备。 我会认为MIB是相同的,但你永远不知道思科。
不,我不知道。
但是既然你已经在使用perl,只需要检查第一行。 从那里开始,你知道特定领域的含义,并填充你的散列(我希望你正在使用它)。 这还有一个好处,就是将来你可以用其他输出格式来支持其他模型。 虽然仍然支持“老”的。 强大的编程。
…哦,并确保处理“地址types”的空间:)
你有没有想过使用SNMP脚本您可以运行外部snmpget / snmpwalk实用程序和parsing输出或使用Net :: SNMP模块。
SNMP是最好的。 但也要记住,“包含”输出修饰符是正则expression式的能力。 如果你想坚持Perl的话,你可以抓住你想要的信息