0

如何通过 NetMiko 上的串行总线连接?我知道3年前提出的这个问题。但是,它似乎不再相关。

我有以下代码。

from netmiko import ConnectHandler

device = {
    "device_type": "aruba_osswitch",
    "username": "manager",
    "password": "",
    "serial_settings": {"port": "COM4"}
}

net_connect = ConnectHandler(**device)

output = net_connect.send_command("show version")

print(output)

我收到错误:ValueError:必须设置 ip 或主机。但是,由于它是串行的,据我所知,它不需要主机或 IP。有人可以建议吗?

谢谢,

4

2 回答 2

0

我使用了以下代码片段: - https://semfionetworks.com/blog/establish-a-console-connection-within-a-python-script-with-pyserial/ 通过在 OpenSUSE OS 上稍作修改来实现这一点

$import serial
$from time import sleep


$def send_to_console(ser: serial.Serial, command: str, wait_time: float = 0.5):
     $command_to_send = command + "\r"
     $ser.write(command_to_send.encode('utf-8'))
     $sleep(wait_time)
     $print(ser.read(ser.inWaiting()). decode('utf-8'), end="") 

$with serial.Serial("/dev/ttyS8", timeout=1) as ser:
     $print(f"Connecting to {ser.name}...")
     $send_to_console(ser, "")
     $send_to_console(ser, "enable")
     $send_to_console(ser, "show ip interface brief", wait_time=2)
     $print(f"Connection to {ser.name} closed.")
于 2021-12-25T21:39:57.153 回答
0

正如我在评论中提到的,不幸的是,与 Aruba 交换机的串行连接并未在Netmiko. 我唯一能看到的是思科设备。每当您想使用串行电缆连接到设备时,只需附加_serial到设备类型(如果它在 Netmiko 中实现)。对于 Cisco 设备,它类似于{"device_type": "cisco_ios_serial"}. 如果您想自己做,请尝试使用pySerial库来做。

Netmiko已经pySerial用于串行连接。

这是使用与设备无关的 API的要点。pySerial

于 2021-08-21T11:14:55.667 回答