pythontelnet登录
㈠ 如何实现python和telnet通信
1#-*-coding:utf-8-*-
2
3importtelnetlib
4
5'''Telnet远程登录:Windows客户端连接Linux服务器'''
6
7#配置选项
8Host='192.168.1.2'#Telnet服务器IP
9username='admin'#登录用户名
10password='123456'#登录密码
11finish=':~$'#命令提示符(标识着上一条命令已执行完毕)
12
13#连接Telnet服务器
14tn=telnetlib.Telnet(Host)
15
16#输入登录用户名
17tn.read_until('login:')
18tn.write(username+' ')
19
20#输入登录密码
21tn.read_until('Password:')
22tn.write(password+' ')
23
24#登录完毕后,执行ls命令
25tn.read_until(finish)
26tn.write('ls ')
27
28#ls命令执行完毕后,终止Telnet连接(或输入exit退出)
29tn.read_until(finish)
30tn.close()#tn.write('exit ')
如果解决了您的问题请采纳!
如果未解决请继续追问!
㈡ 【telnetlib】使用Python登录Cisco交换机执行命令
更多内容请点击 我的博客 查看,欢迎来访。
telnetlib --- Telnet client
最近要对交换机端口进行控制,如果每次使用命令去操作确实挺麻烦的,就使用脚本一键实现,并有记录日志的功能。参考 https://blog.csdn.net/study_in/article/details/89338016
Telnet.read_until(expected, timeout=None) : #读取连接服务器后显示的内容,直到遇到同 expected 相同的字节串。或者等待时间大于 timeout 时直接向下运行。
Telnet.read_very_eager() : 读取从上次IO阻断到现在所有的内容,返回的是字节串,需要进行 decode() 编码。如果连接关闭或者没有可用数据时会抛出 EOFError ,如果没有其他可用的数据,返回的是 b"" ,除非在IAC中间,否则不会阻碍。
Telnet.open(host, port=23[, timeout]) : 连接到主机,端口号为第二个可选参数,默认为标准的Telnet端口(23),可选的 timeout 参数指定连接的超时时间,如果未指定,将使用全局默认超时设置。不要尝试去重新打开一个已经连接的实例对象。
Telnet.close() : 关闭连接。
Telnet.write(buffer) : # 将一个字节串(byte string)写进socket,如果连接被阻塞,这也会被阻塞,如果连接关闭,会抛出 OSError 。
Telnet.interact() : telnet的交互功能,下面用了一个死循环保证用户能够一直输入命令进行某些操作,也可以使用 Telnet.interact() 这个方法来使所连接终端持久化,不过官网说 (emulates a very mb Telnet client)直译是一个非常愚蠢的客户端。
使用python实现对交换机端口关闭、打开功能。
㈢ Python telnetlib模块使用
telnetlib模块使用
1、telnet 登录祥此设备
2、将输出的信息写到list里面
3、读取毁败想要的值或接谨余迅口属性
下面是读取接口的PVID
㈣ 我想用python脚本telnet电脑Ensp里的交换机,但是没效果,也没报错,是有什么问题吗求解答
1、在备份配置之前进行ping操作,所有IP地址放在HW_IP_List.txt中,ping通的地址放到HW_IP_True.txt中,ping不通的地址放到HW_IP_False.txt中。
脚本文件icmp_reply.py
#!/usr/bin/python
# -*- coding:gb2312 -*-
#import tab
import time,os
start_time = int (time.time())
def hw_ping_test():
ips = open('HW_IP_List.txt','r')
ip_True = open('HW_IP_True.txt','w')
ip_False = open('HW_IP_False.txt','w')
count_True,count_False=0,0
for ip in ips.readlines():
ip = ip.replace('\n','')
return1= os.system('ping -n 1 -w 1 %s'%ip)
if return1 :
print 'ping %s is fail'%ip
ip_False.write(ip+'\n')
count_False += 1
else:
print 'ping %s is ok'%ip
ip_True.write(ip+'\n')
count_True += 1
ip_True.close()
ip_False.close()
ips.close()
end_Time = int(time.time())
print "time(sencond):",end_Time - start_time,"s"
print "ping OK IP:",count_True," ping False IP:",count_False
hw_ping_test()
2、编辑核心脚本,调用icmp_reply.py,程序执行时会先自动运行icmp_reply.py,调用生成的HW_IP_True.txt文件,先要选择设备类型,然后选择执行的动作,输入TFTP服务器地址,程序就开始执行选择的相应的动作。
㈤ python telnet后如何保存执行tn.write()命令输出的信息 ...
#python3中实现方法
import telnetlib
import os
def do_telnet(Host, username, password, finish,command):
'''Telnet远程登录:Windows客户端连接ZTE olt'''
# 连接Telnet olt
tn = telnetlib.Telnet(Host, port=23, timeout=10)
tn.set_debuglevel(2)
# 输入登录用户名
tn.read_until(b'Username:')
tn.write(username + '\n')
# 输入登录密码
tn.read_until(b'Password:')
tn.write(password + '\n')
# 登录完毕后执行命令
tn.read_until(finish)
tn.write(command+b'\n') #这种保存方法失败,求决解
#要用read来获取输出内容,decode是将字节码数据解码成人类可读的数据
t = tn.read_very_eager().decode('utf-8')
#执行完毕后,终止Telnet连接(或输入exit退出)
tn.read_until(finish)
tn.close() # tn.write('exit\n')
print ('finished')
#将结果作为返回值
return t
if __name__=='__main__':
# 配置选项
Host = '192.168.0.253' # Telnet服务器IP
username = b'ZTE' # 登录用户名
password = b'zte' # 登录密码
finish = b'c300#' # 命令提示符
command = b'show mac'
#获取返回的结果
content = do_telnet(Host, username, password, finish, command)
print(content)