#python #ssh #netmiko
Вопрос:
Пытаюсь понять, как использовать исходный код сокета с 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)
Комментарии:
1. Я не совсем понимаю, что ты имеешь в виду.
netmiko
устанавливает ssh-соединение с устройством и обменивается данными по нему.2. Укажите в разделе с помощью обработчика подключений интерфейс исходного адаптера для исходящих подключений netmiko.
Ответ №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 в текущий каталог и измените строку ниже. Если кто-нибудь найдет альтернативный метод, пожалуйста, напишите!!!
Это работает для telnet
#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))
Спасибо.