Telnet基本概念及C# Telnet 客户端程序

Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务器的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器,终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样,可以在本地主机就能控制远程服务器。

Windows中Telnet基本使用方式:1.安装Telnet客户端(控制面板->程序和功能->启用或关闭Windows功能->Telnet客户端);2.使用快捷键Win+R打开运行窗口,输入cmd命令打开cmd.exe命令行程序(或找到具体的文件件路径C:\Windows\System32\cmd.exe打开);3.输入telnet命令登录服务端(telnet ip/域名 端口[一般是23],再根据提示输入账号密码,之后就可以执行具体的telnet操作,如执行"display curr"取防火墙服务器配置)

C#程序实现的Telnet客户端:

using System;
using System.Net.Sockets;
using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("目标IP:");
            string ip = Console.ReadLine();
            Console.WriteLine("目标Port:");
            int port = int.Parse(Console.ReadLine());

            Run(ip , port);
        }

        public static void Run(string ip , int port)
        {
            TcpClient tcpClient = new TcpClient(ip, port);
            NetworkStream networkStream = tcpClient.GetStream(); 
            StreamWriter streamWriter = new StreamWriter(networkStream);
            StreamReader streamReader = new StreamReader(networkStream);

            while (true)
            {
                //Read Echo
                //Set ReadEcho Timeout
                networkStream.ReadTimeout = 10;
                try
                {
                    while (true)
                    {
                        char c = (char)streamReader.Read();
                        if (c < 256)
                        {
                            if (c == 27)
                            {
                                while (streamReader.Read() != 109) { }
                            }
                            else
                            {
                                Console.Write(c);
                            }
                        }
                    }
                }
                catch
                {

                }

                //Send CMD
                streamWriter.Write("{0}\r\n", Console.ReadLine());
                streamWriter.Flush();
            }
        }
    }
}

 

posted @ 2017-08-12 10:00  Arlar  阅读(1995)  评论(0编辑  收藏  举报