C#의 텔넷 라이브러리

Muhammad Zeeshan 2023년10월12일
  1. C#의 Telnet 라이브러리
  2. C#의 Telnet 라이브러리 응용 프로그램
  3. C#에서 Telnet 라이브러리의 결과
C#의 텔넷 라이브러리

이 자습서에서는 Telnet 라이브러리를 설명하고 C#의 간단한 Telnet 인터페이스를 보여줍니다.

C#의 Telnet 라이브러리

Telnet은 컴퓨터에 가상으로 연결하고 두 워크스테이션 간에 양방향, 상호 지원, 텍스트 기반 통신 채널을 설정할 수 있게 해주는 네트워킹 프로토콜입니다.

사용자 명령 TCP/IP(전송 제어 프로토콜/인터넷 프로토콜) 네트워킹 프로토콜을 사용하여 원격 세션을 만듭니다.

웹에서 HTTP(Hypertext Transfer Protocol) 및 FTP(File Transfer Protocol)는 사용자가 원격 컴퓨터에서 특정 파일을 요청할 수 있도록 허용합니다.

그러나 Telnet을 사용하면 사용자가 해당 시스템의 특정 응용 프로그램 및 데이터에 제공되는 기능을 사용하여 일반 사용자로 로그인할 수 있습니다.

예시:

이 클래스의 가능한 응용 프로그램에는 텔넷 터미널, 서버에서 실행되어야 하는 일부 UNIX 명령을 기반으로 하는 Windows GUI 및 텔넷 스크립트를 실행하는 소프트웨어가 포함됩니다.

이 코드는 최소한의 터미널과 파일 파이핑을 통해 스크립트를 배포하는 옵션을 모두 제공합니다.

시작하려면 다음 라이브러리를 가져옵니다.

using System;
using System.Collections.Generic;
using System.Text;

코드를 작성하기 위해 MinimalisticTelnet 네임스페이스에 Telnet 클래스를 작성하십시오.

namespace MinimalisticTelnet {
  class Telnet {}
}

Main 기능의 23 포트에서 shani 호스트 이름에 Tcon이라는 새 텔넷 연결을 만듭니다. Telnet 프로토콜은 일반적으로 Port 23 포트를 사용합니다.

TelnetConnection Tcon = new TelnetConnection("shani", 23);

Login() 메소드를 사용하여 root, rootpasswordtimeout과 같은 로그인 자격 증명을 포함하는 t 문자열 변수를 구성합니다. root, rootpassword 및 130초의 timeout을 제공했습니다.

다음 코드 줄에서 볼 수 있듯이 서버 출력이 표시됩니다.

string t = Tcon.Login("root", "rootpassword", 130);
Console.Write(t);

서버 출력을 얻은 후 서버 출력을 확인합니다. $ 또는 >로 끝나야 합니다. 그렇지 않으면 문제가 발생했습니다. 연결에 실패했습니다.라는 메시지와 함께 예외가 발생합니다.

string Prmpt = t.TrimEnd();
Prmpt = t.Substring(Prmpt.Length - 1, 1);
if (Prmpt != "$" && Prmpt != ">")
  throw new Exception("Something went wrong failed to connect ");
Prmpt = "";

이제 while 루프를 사용하고 telnet 연결 Tcon을 매개변수로 전달하여 연결되었는지 여부를 확인합니다. 연결되어 있으면 루프가 실행됩니다. 그렇지 않으면 종료되고 연결 끊김 메시지가 표시됩니다.

while (Tcon.IsConnected && Prmpt.Trim() != "exit") {
}
Console.WriteLine("Disconnected");
Console.ReadLine();

마지막으로 while 루프의 본문에 다음 코드를 작성합니다.

while (Tcon.IsConnected && Prmpt.Trim() != "exit") {
  Console.Write(Tcon.Read());
  Prmpt = Console.ReadLine();
  Tcon.WriteLine(Prmpt);
  Console.Write(Tcon.Read());
}

서버의 출력은 다음 코드 줄에 표시됩니다.

Console.Write(Tcon.Read());

이것은 모든 클라이언트의 정보 또는 입력을 서버로 전송합니다.

Prmpt = Console.ReadLine();
Tcon.WriteLine(Prmpt);

이 코드는 클라이언트 정보가 입력되었을 때 서버의 출력을 표시합니다.

Console.Write(Tcon.Read());

예제 코드:

using System;
using System.Collections.Generic;
using System.Text;

namespace MinimalisticTelnet {
  class Telnet {
    static void Main(string[] args) {
      TelnetConnection Tcon = new TelnetConnection("shani", 23);
      string t = Tcon.Login("root", "rootpassword", 130);
      Console.Write(t);
      string Prmpt = t.TrimEnd();
      Prmpt = t.Substring(Prmpt.Length - 1, 1);
      if (Prmpt != "$" && Prmpt != ">")
        throw new Exception("Something went wrong failed to connect ");
      Prmpt = "";
      while (Tcon.IsConnected && Prmpt.Trim() != "exit") {
        Console.Write(Tcon.Read());
        Prmpt = Console.ReadLine();
        Tcon.WriteLine(Prmpt);
        Console.Write(Tcon.Read());
      }
      Console.WriteLine("Disconnected");
      Console.ReadLine();
    }
  }
}

C#의 Telnet 라이브러리 응용 프로그램

Telnet을 사용하면 웹 서버 및 포트와 같이 텍스트 기반의 암호화되지 않은 프로토콜을 사용하는 모든 프로그램에 연결할 수 있습니다.

텔넷은 파일 편집, 프로그램 실행 및 이메일 검사를 포함하여 서버에서 다양한 작업을 수행하는 데 사용할 수 있습니다.

다양한 서버가 텔넷을 통해 공개 데이터에 대한 원격 액세스를 제공하여 사용자가 간단한 게임을 하거나 일기 예보를 조회할 수 있도록 합니다. 이러한 기능 중 상당수는 향수를 불러일으키거나 특정 데이터가 필요한 이전 시스템과 호환되기 때문에 지속됩니다.

C#에서 Telnet 라이브러리의 결과

Telnet에는 보안 결함이 있습니다. 암호화되지 않은 비보안 프로토콜입니다.

Telnet 세션 동안 사용자의 연결을 모니터링하는 사람은 누구나 일반 텍스트로 작성된 사용자의 로그인, 암호 및 기타 개인 정보를 볼 수 있습니다. 이 데이터는 사용자의 장치에 액세스하는 데 사용할 수 있습니다.

Muhammad Zeeshan avatar Muhammad Zeeshan avatar

I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.

LinkedIn