下面是我的工作代码,用于在Cisco Routers上显示我的路由器arp表。
我手头有一项任务,要求我从" sh arp"的输出中读取特定值。命令并将其用作要在Cisco路由器上执行的另一个命令的输入。
路由器中的命令:
1- sh arp vrf INTERNET | INC 0835.71
2- ping vrf INTERNET 100.124.162.230 **
我已完成第1步。我可以获得输出,但我需要肝脏来完成第2步,捕获IP" 100.124.162.230对它运行ping。
打印(" Ping NMD ....")
chmod 440 /etc/sudoers.d/redmine
输出:
r-a> sh arp vrf INTERNET | INC 0835.71 Internet 100.124.162.230 74 0835.71ef.d0a1 ARPA GigabitEthernet0 / 0.901
2-下一步是获取IP并运行ping请帮助。
我提取了我的IP地址,现在我想对提取的IP运行ping,我怎么能在python中执行此操作。请帮忙..
r-a> sh arp vrf INTERNET |公司0835 Internet 100.114.162.230 110 0835.71ef.d0a1 ARPA GigabitEthernet0 / 0.901 R-A> [' 100.114.162.230']
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect("r-a" ,timeout = 10)
chan = ssh.invoke_shell()
time.sleep(.1)
chan.send('sh arp vrf INTERNET | INC 0835.71 \n')
time.sleep(20)
#Print command output
while chan.recv_ready():
output = str(chan.recv(99999999))
output.encode('utf-8')
#print(type(output))
#print("\n\n\nPrinting total output: {0}".format(output))
答案 0 :(得分:0)
这样的事情可能有用,但是如果你能够ssh到它那么我可能会错过一些东西吗?:
_, stdout, _ = ssh.exec_command('hostname')
hostname = stdout.read()
ssh.close()
HOST_UP = True if os.system("ping -c 1 " + hostname) is 0 else False
相关: