今天豆子需要给几个思科的交换机列个清单,比如看看某VLAN上到底连接了哪些端口,还需要知道这些端口连接设备的IP,Mac和DNS信息。
这个本事不是什么复杂的事情,比如我可以用show vlan X 显示对应的端口; 用show ip arp vlan X 通过arp来判断Mac地址和IP地址,通过 show mac-address 来判断和Mac地址绑定的端口等等,不过这样子的操作很麻烦,每个地址我都得来回切换比较看看,有没有稍微简便一点的方法呢?
豆子不是专业的网工,所以我的有限知识里面好像没有比较省事的命令可以直接出结果,于是第一个反应就是看看powershell能不能稍微简化一下我的手动操作吧。下面是我的操作过程
首先,我需要一个完整的arp表,很简单了,交换机上直接ping 广播地址好了。
ping 10.2.1.255 然后我需要保存这个arp列表
sh ip arp vlan 10 复制粘贴另存为t1.csv表格
然后我需要一个Mac地址和端口对应的表
sh mac address-table vlan 10 复制粘贴另存为t2.csv表格
接下来就是很简单的PowerShell脚本了
#ping 10.2.1.255
#sh ip arp vlan ....> t1
$obj | where-object{$_.port -notlike "po*"}| select IP, Mac, @{n='DNS';e={[System.Net.Dns]::gethostentry($_.IP).hostname}}, Port | tee -Variable result
结果如下