tcp连接到路由器如何通信? (Telnet客户端)

时间:2013-04-28 18:13:46

标签: c# telnet tcpclient router

我正在尝试构建一个程序,该程序将连接到特定端口(主要是80)的IP地址(最好是路由器的IP地址),并尝试进行身份验证,然后继续进行进一步的操作。

我开始时不知道如何与路由器/服务器通信,所以我这样做了:

while (tcpSocket.Available > 0)
{
  int input = tcpSocket.GetStream().ReadByte();

但它总是得到一个tcpSocket.Available = 0 所以后来我发现我必须发送一个特定的cmd来跟我说话。 http://msdn.microsoft.com/en-us/library/cc247846.aspx

并且做了这个

var client = new TcpClient(ip, port);
var data = Encoding.GetEncoding(1252).GetBytes(cmd);
var stm = client.GetStream();
stm.Write(data, 0, data.Length);

现在我不明白如何基于此http://www.ietf.org/rfc/rfc2941.txt格式化cmd cmd 会是37 - 1吗?

感谢您的阅读 P.S不知道我是否应该将其指向SuperUser或ServerFault

1 个答案:

答案 0 :(得分:2)

我认为你需要回到更简单的问题和调查。

首先:您要连接的服务器上实际运行的协议是什么?端口80表明它是HTTP(端口80通常为HTTP保留)。 Telnet通常在端口23上运行 如果是HTTP,则需要遵循RFC 2616中定义的协议(使用RFC 2617中定义的身份验证选项)。

更简单:使用PuTTY(或其他首选的telnet客户端)连接到服务器。您需要做什么才能登录?如果它是一个telnet服务器,那么它可能会显示一个横幅,后跟一个登录提示。您将键入用户名,然后返回,然后它将显示密码提示。如果它是HTTP服务器,那么它可能根本不显示任何内容,但键入HTTP/1.0(返回)HEAD /(返回),您应该看到HTTP消息响应。无论您使用PuTTY需要做什么,您的程序都需要做同样的事情。

相关问题