嘻嘻嘻,用python的netmiko库,然后和易语言打个tcp,只能这样曲线救国了
[Python] 纯文本查看 复制代码 from netmiko import ConnectHandler
import socket
def receive_data(sock, prompt):
"""发送提示并接收数据"""
sock.sendall(prompt.encode('utf-8'))
data = sock.recv(1024)
return data.decode('utf-8').strip()
def main():
socks = socket.socket() # 创建 socket 连接
try:
socks.connect(('127.0.0.1', 19730)) #socks连接本地19730
# 接收 IP 地址、用户名和密码
ip = receive_data(socks, 'ip')
user = receive_data(socks, 'user')
pwd = receive_data(socks, 'pwd')
# 定义设备信息
device = {
'device_type': 'huawei',
'host': ip,
'username': user,
'password': pwd,
'conn_timeout': 180,
}
# 使用 Netmiko 连接到设备
with ConnectHandler(**device) as conn:
while True:
# 提示客户Duan发送命令
socks.sendall('end'.encode('utf-8'))
server_reply = socks.recv(1024)
cmd = server_reply.decode('utf-8').strip()
if cmd.lower() == 'exit':
socks.sendall('Exiting...\n'.encode('utf-8'))
break
try:
# 执行命令并获取输出
output = conn.send_command(cmd)
socks.sendall(output.encode('utf-8'))
except Exception as e:
error_message = f"Error executing command: {str(e)}"
socks.sendall(error_message.encode('utf-8'))
except Exception as e:
print(f"An error occurred: {e}")
finally:
socks.close()
if __name__ == "__main__":
main()
|