0

试图弄清楚如何在 netmiko 中使用套接字源。到目前为止没有运气......(

 from netmiko import ConnectHandler
 import socket

 cisco_881 =
 {
'device_type': 'cisco_ios',

'host':   '192.168.2.241',
'username': 'admin',
'password': 'admin', 
'secret': 'admin', 
}

net_connect = ConnectHandler(**cisco_881)
output = net_connect.send_command('show interface')
print(output)
4

1 回答 1

1

这适用于 SSH

import socket
sok = socket.socket()
sok.bind(("127.0.0.1", 0))
sok.connect((host, 22))
#Then on the ConnectHandler specify the src socket.
net_connect = ConnectHandler(**cisco_881, sock=sok).

对于 Telnet,Netmiko 使用 telnetlib,它只接受主机、端口、超时参数。唯一的解决方案是将 telnetlib.py 复制到当前目录并修改下面的行。如果有人找到替代方法,请发布!

这适用于远程登录

#Modify telnetlib.py

#From:
self.sock = socket.create_connection((host, port), timeout

#To: 
self.sock = socket.create_connection((host, port), timeout, ("Your source IP", 0))

谢谢你。

于 2021-09-24T16:50:40.797 回答