Python | Netmiko |自动ping

Python | Netmiko |自动ping,python,networking,automation,cisco,netmiko,Python,Networking,Automation,Cisco,Netmiko,我是初学者,我已经尝试了很多 代码: conn = netmiko.ConnectHandler(ip='10.254.60.10', device_type='cisco_ios', username='user', password='P@ssw0rd') print (conn.send_command('show interface Ethernet0/0 | i line|Des|Int')) 像这样输出 Ether

我是初学者,我已经尝试了很多

代码:

conn = netmiko.ConnectHandler(ip='10.254.60.10', device_type='cisco_ios', 
                                username='user', password='P@ssw0rd')

print (conn.send_command('show interface Ethernet0/0 | i line|Des|Int'))
像这样输出

Ethernet0/0已启动,线路协议已启动 描述:客户A
互联网地址为10.254.60.69/30

如何使用
conn.send_command()
根据
show interface
命令的结果自动ping到IP PtP

示例ping到10.254.60.70,您将得到文本

text = '''Ethernet0/0 is up, line protocol is up Description: CUSTOMER A
Internet address is 10.254.60.70/30'''
您可以使用字符串函数获取
IP/MASK

address = text.split(' ')[-1]
print(address)  # 10.254.60.70/30
然后您可以使用标准模块

或不是标准模块
netaddr

import netaddr

net = netaddr.IPNetwork(address)
ip = str(net.broadcast)
print( ip )   # 10.254.60.71 

编辑:最小工作代码

text = '''Ethernet0/0 is up, line protocol is up Description: CUSTOMER A
Internet address is 10.254.60.69/30'''

address = text.split(' ')[-1]
print(address)  # 10.254.60.69/30

print('\n--- ipaddress ---\n')

import ipaddress

net = ipaddress.ip_interface(address)

print('ip  :', net.ip )   # 10.254.60.69 
print('ip+1:', net.ip+1 ) # 10.254.60.70
print('ip-1:', net.ip-1 ) # 10.254.60.68

#bip = net.network.broadcast_address
bip = str(net.network.broadcast_address)
print('bip :', bip )      # 10.254.60.71 

print('\n--- netaddr ---\n')

import netaddr

net = netaddr.IPNetwork(address)

print('ip  :', net.ip )   # 10.254.60.69 
print('ip+1:', net.ip+1 ) # 10.254.60.70
print('ip-1:', net.ip-1 ) # 10.254.60.68

bip = net.broadcast
#bip = str(net.broadcast)
print('bip :', bip )      # 10.254.60.71 
结果:

10.254.60.69/30

--- ipaddress ---

ip  : 10.254.60.69
ip+1: 10.254.60.70
ip-1: 10.254.60.68
bip : 10.254.60.71

--- netaddr ---

ip  : 10.254.60.69
ip+1: 10.254.60.70
ip-1: 10.254.60.68
bip : 10.254.60.71
你收到短信了吗

text = '''Ethernet0/0 is up, line protocol is up Description: CUSTOMER A
Internet address is 10.254.60.70/30'''
您可以使用字符串函数获取
IP/MASK

address = text.split(' ')[-1]
print(address)  # 10.254.60.70/30
然后您可以使用标准模块

或不是标准模块
netaddr

import netaddr

net = netaddr.IPNetwork(address)
ip = str(net.broadcast)
print( ip )   # 10.254.60.71 

编辑:最小工作代码

text = '''Ethernet0/0 is up, line protocol is up Description: CUSTOMER A
Internet address is 10.254.60.69/30'''

address = text.split(' ')[-1]
print(address)  # 10.254.60.69/30

print('\n--- ipaddress ---\n')

import ipaddress

net = ipaddress.ip_interface(address)

print('ip  :', net.ip )   # 10.254.60.69 
print('ip+1:', net.ip+1 ) # 10.254.60.70
print('ip-1:', net.ip-1 ) # 10.254.60.68

#bip = net.network.broadcast_address
bip = str(net.network.broadcast_address)
print('bip :', bip )      # 10.254.60.71 

print('\n--- netaddr ---\n')

import netaddr

net = netaddr.IPNetwork(address)

print('ip  :', net.ip )   # 10.254.60.69 
print('ip+1:', net.ip+1 ) # 10.254.60.70
print('ip-1:', net.ip-1 ) # 10.254.60.68

bip = net.broadcast
#bip = str(net.broadcast)
print('bip :', bip )      # 10.254.60.71 
结果:

10.254.60.69/30

--- ipaddress ---

ip  : 10.254.60.69
ip+1: 10.254.60.70
ip-1: 10.254.60.68
bip : 10.254.60.71

--- netaddr ---

ip  : 10.254.60.69
ip+1: 10.254.60.70
ip-1: 10.254.60.68
bip : 10.254.60.71

您以字符串的形式获取输出,因此使用字符串函数获取IP-ie。
text.split(“”)
text[:-3]
您以字符串的形式获取输出,因此使用字符串函数获取IP-ie。
text.split(“”)
text[:-3]
我得到
10.254.60.71
用于
broadcast\u address
并使用
netaddr
我得到
10.254.60.68
用于
net.network
噢,对不起,你说得对,我的坏路由器ip是10.254.60.69,如何得到
打印(ip)
=10.254.60.70?如果它是下一个地址,那么
net.ip+1
我得到
10.254.60.71
用于
broadcast\u地址
并使用
netaddr
我得到
net.network的
10.254.60.68
对不起,你说得对,我的坏路由器ip是10.254.60.69,如何得到
print(ip)
=10.254.60.70?如果是下一个地址,则
net.ip+1