有没有办法向 telnet 设备发送 GET 请求? [关闭]

Posted

技术标签:

【中文标题】有没有办法向 telnet 设备发送 GET 请求? [关闭]【英文标题】:Is there a way to send a GET request to telnet device? [closed] 【发布时间】:2021-10-14 20:46:20 【问题描述】:

我正在尝试在 Go 中编写一些代码,它应该连接启动 telnet 客户端以连接到 telnet 并向设备发送 get 请求(即进行简单的横幅抓取)。这是我到目前为止的代码:

    conn, _:= telnet.DialTo("ipaddress:23")
    resp, _:= conn.Write([]byte("GET / HTTP/1.0\r\n\r\n")

    fmt.Printf("\n Response: %v", resp)

我知道这段代码与设备建立了连接,但是除了 18 之外,我似乎无法取回任何东西。有谁知道这意味着什么以及我如何才能真正从设备中获取正确的横幅/我做错了什么?

【问题讨论】:

根据定义,telnet 设备使用 telent 协议,HTTP 设备使用 HTTP 协议。当然,一个设备可以同时说这两者。但是你不能用 HTTP 和 telnet 对话,反之亦然。 【参考方案1】:

您尝试做的事情没有真正意义:GET 请求是 HTTP 协议,而 telnet 服务则使用 Telnet protocol。 telnet 协议本身没有实际的横幅(HTTP 也没有),所以“横幅抓取”也没有真正的意义。连接到 telnet 服务器后显示的内容取决于其背后的实际服务,但通常只是一个登录提示。

【讨论】:

哇,谢谢!这很有意义。您对如何在 telnet 上获取有关设备的基本信息(例如您想要横幅抓取)有任何建议吗?我对 telnet + go 还很陌生,这对我来说非常令人困惑 Telnet 只是一个双向数据流。它发送的数据 100% 取决于该端口上的服务器上运行的服务。因此,没有通用的方法可以满足您的要求。 默认情况下,在大多数带有 Telnet 的系统上,默认配置只会给您一个登录提示。这意味着如果您在远程服务器上有登录名和密码,您可以通过 telnet 登录,然后发出您想要的任何命令。但这比过去几年要难得多。大多数系统根本没有安装 telnet(它非常不安全),或者如果安装了它,它可能是用于一些非常有限和特定的服务。

以上是关于有没有办法向 telnet 设备发送 GET 请求? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Telnet 发送 HTTP 请求 [关闭]

使用 telnet 的 HTTP 请求没有得到任何响应

在 C# 中通过 Telnet 发送和接收命令

如何通过命令行以多行形式向 HTTP 服务器发送请求?

如何通过 telnet 发送 POST 请求

我正在从 express API 向颤振应用程序发送 GET 请求,但我没有得到任何输出