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