网络协议分析(4):Telnet

Telnet协议

Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式



前言

它是Tnternet中用来进行远程访问的重要协议之一。远程登录允许用户与远程计算机进行动态交互,即用自己的键盘,鼠标等输入设备操纵远程计算机,运行远程计算机上的软件,在自己的显示器上了解运行情况,查看运行结果。


一、工作原理

使用Telnet协议进行远程登录时需要满足以下条件:

  • 在本地计算机上必须装有包含Telnet协议的客户程序;
  • 必须知道远程主机的Ip地址或域名;
  • 必须知道登录标识与口令。

Telnet远程登录服务分为以下4个过程:

  1. 本地与远程主机建立连接。该过程实际上是建立一个TCP连接,用户必须知道远程主机的Ip地址或域名;
  2. 将本地终端上输入的用户名和口令及以后输入的任何命令或字符以NVT(Net VirtualTerminal)格式传送到远程主机。该过程实际上是从本地主机向远程主机发送一个IP数据包;
  3. 将远程主机输出的NVT格式的数据转化为本地所接受的格式送回本地终端,包括输入命令回显和命令执行结果;
  4. 最后,本地终端对远程主机进行撤消连接。该过程是撤销一个TCP连接

二、代码模拟

代码如下(示例):
最基本的Telnet示例,借鉴于python的telnetlib库给出的经典实例

#python的telnetlib库给出的经典实例
import getpass
import sys
import telnetlib
HOST = "localhost"
user = raw_input("Enter your remote account: ")
password = getpass.getpass()
tn = telnetlib.Telnet(HOST)
tn.read_until("login: ")
tn.write(user + "\n")
if password:
    tn.read_until("Password: ")
    tn.write(password + "\n")
tn.write("ls\n")
tn.write("exit\n")
print tn.read_all()
import telnetlib

'''由经典实例改写的Telnet远程登录'''

# 配置选项
Host = 'xxx.xxx.xxx' # Telnet服务器IP
username = 'admin'   # 登录用户名
password = 'admin'  # 登录密码
finish = ':~$ '      # 命令提示符
 
# 连接Telnet服务器
TN = telnetlib.Telnet(Host)
#输入登录用户名
TN.read_until('login: ')
TN.write(username + '\n')

# 输入登录密码
TN.read_until('Password: ')
TN.write(password + '\n')

# 登录完毕后,执行ls命令
TN.read_until(finish)
TN.write('ls\n')

# ls命令执行完毕后,终止Telnet连接
TN.read_until(finish)
TN.close()

golang代码模拟就不写了,自己的水平不够,测试经常失败,连接不上
还是老样子,我给大家推荐一篇大佬的博客

Golang模拟Telnet协议-大佬!!!


总结

提示:期待大家的一键三连,希望大家多多转发
网络协议分析专题创作的第四天,可能是刚开始写,有些生疏,水平也不够,因为想要每天一篇,但又没那么多时间…导致代码模拟部分有些拉跨,还望各位友友们见谅

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值