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
, rootpassword
및 timeout
과 같은 로그인 자격 증명을 포함하는 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 세션 동안 사용자의 연결을 모니터링하는 사람은 누구나 일반 텍스트로 작성된 사용자의 로그인, 암호 및 기타 개인 정보를 볼 수 있습니다. 이 데이터는 사용자의 장치에 액세스하는 데 사용할 수 있습니다.
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