C# の Telnet ライブラリ
このチュートリアルでは、Telnet ライブラリについて説明し、C# での簡単な Telnet インターフェイスを示します。
C# の Telnet ライブラリ
Telnet は、コンピュータに仮想的に接続し、2 台のワークステーション間に双方向の相互にサポートするテキストベースの通信チャネルを確立できるようにするネットワークプロトコルです。
ユーザーコマンドの伝送制御プロトコル/インターネットプロトコル(TCP / IP)ネットワークプロトコルを使用してリモートセッションを作成します。
Web では、ハイパーテキスト転送プロトコル(HTTP)とファイル転送プロトコル(FTP)を使用すると、ユーザーはリモートコンピューターから特定のファイルを要求することができます。
ただし、Telnet を使用すると、ユーザーは、そのマシン上の特定のアプリケーションとデータに提供される機能を使用して、通常のユーザーとしてログインできます。
例:
このクラスの可能なアプリケーションには、Telnet 端末、サーバー上で実行する必要のあるいくつかの UNIX コマンドに基づく Windows GUI、および Telnet スクリプトを実行するソフトウェアが含まれます。
このコードは、最小限の端末と、ファイルのパイプを介してスクリプトをデプロイするオプションの両方を提供します。
まず、次のライブラリをインポートします。
using System;
using System.Collections.Generic;
using System.Text;
名前空間 MinimalisticTelnet に Telnet クラスを作成して、コードを記述します。
namespace MinimalisticTelnet {
class Telnet {}
}
Main 関数のポート 23 でホスト名 shani への Tcon という名前の新しい telnet 接続を作成します。Telnet プロトコルは通常、ポートポート 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);
サーバー出力を取得したら、サーバー出力を確認します。 $ または > で終了する必要があります。そうしないと、Something went wrong, failed to connect というメッセージとともに例外がスローされます。
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 をパラメーターとして渡して、接続されているかどうかを確認します。接続されている場合、ループが実行されます。それ以外の場合は、終了して Disconnected というメッセージが表示されます。
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 を使用すると、ユーザーは、Web サーバーやポートなど、テキストベースの暗号化されていないプロトコルを使用する任意のプログラムに接続できます。
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