telnetlib库的使用

telnetlib使用比较简单,写了个例子,可以看看整个telnet过程:

print('------------------------connect---------------------------')#连接Telnet服务器tn =telnetlib.Telnet(host, port)

tn.set_debuglevel(5)print('-------------------------login----------------------------')#输入登录用户名tn.read_until('login:')

tn.write(username+'\n')if(password !=''):#输入登录密码tn.read_until('password:')

tn.write(password+'\n')#登录完毕后执行命令print('-----------------------send over---------------------------')

tn.read_until(finish)

tn.write(commands+'\n')print('-------------------------output----------------------------')

time.sleep(.1)

result=tn.read_very_eager()printresult

tn.close()#tn.write('exit\n')print('--------------------------end------------------------------')

流程和手工进行telnet流程相一致,主要需要注意两点内容:

1.输入后需要等待相应的提示符。比如:连接完成需要等待用户名提示符,用户名输入完后需要等待密码提示符等等。

2.在等待telnet命令结果时候的处理。如果使用read_until(),可能无法判断到底会回显什么字符串,如果不一致会一直卡在这里。如果用read_all()的话,如果回显没返回EOF也会卡在这里。比较好的做法是使用read_very_eager(),最多加个延迟就可拿到全部的结果。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本脚本实现telnet连接到特定主机 首先通过telnet程序登录一次,记录下telnet过程中Server返回的...
    沉沙某人阅读 3,199评论 0 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,667评论 19 139
  • 生活,生活是什么?生下来,活下去!当你看到了一个馅饼准确无误的落在你的面前,可是当你捡起来,咬了一口,才发现它除了...
    张益张益张阅读 1,696评论 0 0
  • $ dollar sign is just a function, also a javascript objec...
    AsianDuckKing阅读 3,385评论 0 0
  • 最近,一段名为《2017世界最佳小小说:私奔》的文字在网上引发热议:父亲发现15岁的女儿不在家,她留下一封信,上面...
    ace0247阅读 1,878评论 0 0