所有事都能在 Telnet 中完成吗?

所有事都能在 Telnet 中完成吗?

您在网络上进行的所有操作(例如浏览网页和阅读电子邮件)是否都可以通过 Telnet 完成?

答案1

是的,尽管这会丧失压缩的好处,并且在 SMTP 中使用分块的 GET 响应或 Base64 编码的登录名/密码会很痛苦,所以除了测试目的外,我不建议实际使用它,如果您想在网络上自动执行某些操作,请使用 Perl 或 python。

此外,如果您想要发出与特定浏览器发出的请求无法区分的请求(当您尝试使用受 Bad Behavior 等系统保护的网站时,不得不这样做是一个可悲的现实),请考虑编写一个微型服务器,它将逐字输出您的请求(有这样的例子,但它们可能需要一些轻微的修改)。然后,您将能够使用它作为模板向此类网站发出简单的请求。

例如,尝试

telnet google.com 80

初始化完成后,输入

GET / HTTP/1.0

然后按两次 ENTER(这是 HTTP 协议的要求)。您将获得 302 响应,浏览器通常会使用此响应将您重定向到 WWW.google.com。

答案2

Telnet 可用于(几乎)原始 TCP 连接,并且可以使用基于字符的协议,但有一些差异

因此,Telnet 客户端应用程序也可用于建立交互式原始 TCP 会话,并且人们普遍认为,不使用 IAC(\377 字符,即十进制的 255)的此类会话在功能上是相同的。然而,事实并非如此,因为还有其他网络虚拟终端 (NVT) 规则,例如要求裸回车符 (CR,ASCII 13) 后跟 NULL(ASCII 0)字符,这些规则将 Telnet 协议与原始 TCP 会话区分开来。

否则,您可以使用基于字符使用 Telnet 的应用程序层协议,如 HTTP、FTP、SMTP 和 IRC。由于手动读取和写入压缩数据是一项相当大的挑战,因此您只能使用没有 HTTP/1.1 压缩的 HTTP。对于完全二进制的协议,您几乎没有运气。

答案3

从技术上来说,是的,你可以这样做。但从实际情况来看,答案是否定的:

例如我可以使用以下方式获取网页

telnet www.page.com 80

但我将从中获取 html 文本,而不是 css、图像和其他资源。

然后,使用 html 文件,您可以通过连续的 telnet 调用获取所有其他文件。获取 css 很容易,获取文件、js 和其他“包含”文件也一样。但二进制文件并不那么容易,因为我必须下载它然后处理它,还不算某些资源需要特定的 cookie 和 ref。

而且该网站可能强制使用 z 压缩和许多其他“细节”,这些细节在协议规范中“详细”描述,该协议几乎没有修补,并且有几个例外。

虽然这是可能的,但是从头开始构建一个现有的服务/协议是一样的,所以,这和说“我可以通过“戳”零和一来构建 Windows”是一样的。<--这是可能的,但是这样做会花费大量的时间。

无法完全加载的网站示例是 gmail.com,因为它还包含额外的复杂性:javascript(不包括 Lynx,因为它不是原生的,也不是真实的体验)。

无论如何,在网络和电子邮件之外,存在一些无法使用普通 telnet 访问的协议,因为它需要某种及时的握手(至少几秒钟),而这种握手无法在不使用某种自动化的情况下使用两个单独的 telnet 调用来模仿,即,我们正在谈论一个不是真正的 telnet 客户端而是通过它进行的客户端。

相关内容