이번 포스팅은 별도의 Part은 아니고~ 추가 포스팅입니다.
지난 Part 6에서 다뤄진 내용에 대해서 Nexus 7K용으로 변경한 코드입니다.
꼭 바꿔야하는 부분을 제외하고.. 약간 추가적으로 내용 업데이트도 함께 했습니다. (그 부분은 5K도 공통사항이긴합니다..)
Nexus 7K로 변경해야 할 때, 어디를 바꿔야 하는지 문의하시는 분이 계셔서 수정해서 올려드립니다.
지난 번에 생각했던 것보다 조금 더 수정해야 하는 부분이 있어서. ^^;
포스팅으로 대체했습니다.
Python for Networker : Part 6 보기
Github에서 보기
○ IP Info - Nexus 7000 |
__author__ = 'Network ZIGI - Ko Jae Sung'
#!/bin/env python import argparse import sys import cisco IP = 'IP-Address' MAC = 'Mac-Address' Vlan = 'Vlan' Intf = 'Interface' Desc = 'Description' IP_info = {IP:'None', MAC:'None', Vlan:'None', Intf:'None', Desc:'None'}
def get_ARP_Table(ipaddr): arpCmd = 'sh ip arp ' + ipaddr arpCmdResult = cisco.cli(arpCmd) arpCmdResultList = arpCmdResult.split('\n') for arp in arpCmdResultList: if (-1<arp.find(args.ip)): return arp else: print ' %s : Not found IP Address Infomation' % args.ip sys.exit()
def get_IP_MAC_info(info): info_list = info.split() IP_info[IP] = info_list[0] IP_info[MAC] = info_list[2] IP_info[Vlan] = info_list[3][4:] def get_Interface_info(): macCmd = 'sh mac address-table addr ' + IP_info[MAC] macCmdResult = cisco.cli(macCmd) macCmdResultList = macCmdResult.split('\n') for infInfo in macCmdResultList: idx = infInfo.find(IP_info[MAC]) if(-1<idx): IP_info[Intf] = infInfo[58:] get_Description_info(IP_info[Intf]) break
def get_Description_info(iInfo): if(iInfo.find('Eth') == 0 or iInfo.find('Po')==0): intCmd = 'sh int desc | inc ' + iInfo intCmdResult = cisco.cli(intCmd) if(intCmdResult != ''): intCmdResultList = intCmdResult.split('\n') IP_info[Desc] = intCmdResultList[0][25:].strip()
def show_IP_info(): print '================================================' print ' IP Info : NetworkZIGI ' print '================================================' print '%-15s : %s' % (IP,IP_info[IP]) print '%-15s : %s' % (MAC,IP_info[MAC]) print '%-15s : %s' % (Vlan, IP_info[Vlan]) print '%-15s : %s' % (Intf, IP_info[Intf]) print '%-15s : %s' % (Desc,IP_info[Desc])
parser = argparse.ArgumentParser('Args',description='Args Desc') parser.add_argument('ip') args = parser.parse_args()
iparp = get_ARP_Table(args.ip) get_IP_MAC_info(iparp) get_Interface_info() show_IP_info() |