プログラムでウィンドウベースのQtC++アプリケーションからLinuxコマンドをリモートで実行したい。それを行う最も簡単な方法は何ですか?
5 に答える
ソケットを使用して Linux 上の telnet サーバーに接続し、コマンドを送信するだけです。
これには、実際にはほとんどコードが必要ありません。ここで Java のバージョンを確認します。
Qt/C++ でも同様に行うことができます。
シンプルなサーバー側プログラムwitch がリクエストを処理し、ex system() 関数を使用すると、このソリューションの「リモート」部分になります。
また、関数 witch によって処理されるクライアント側の単純なテキスト フィールドでは、サーバーに接続してコマンド実行要求を送信できます。
このソリューションで最も重要なことは、セキュリティに注意することです。
これを行う 1 つの方法は、クライアント サーバー モデルを使用することです。サーバーは Linux に常駐し、クライアントはコンピューターにすることができます。そうすれば、コマンドをサーバーに送信して、その出力をスローすることができます。それが、この問題について私が考える 1 つの方法です。
UPnP を使用してファイアウォールを通過します (または、NAT トラバーサルまたは UDP/TCP ホール パンチングを使用します)。そうしないと (ポートを転送しないと)、サーバーに到達できなくなります。
2 つ目は、独自の RSH および SSH ユーティリティを作成することです。(またはパテまたは他の既存のソフトウェアを使用)
Linux マシン上にある種のサーバーが必要で、Windows マシンがクライアントになります。最も簡単な方法は、コマンドを実行するための php スクリプトを作成し、それを www ルートにドロップして、Windows マシンにその URL を取得させることだと思います。
結局のところ、セキュリティに関する要件や、実行するコマンドの種類を知らなければ、この質問に明確な答えを出すことは非常に困難です。
Windows のバージョンに関係なく、Plink を使用できます。PuTTY を実行できる場合は、PLink を実行できます。PuTTY Plink ドキュメンテーション. それを使用して、実行可能ファイルを使用し、物事を自動化できます。それ以外の場合、特定のプログラミング言語を探している場合、それらはまだいくつかの SSH ライブラリに依存しています。独自のインストーラーを作成している場合は、PLink.exe をインストーラーに含めて、アプリケーションと共に配布できます。
ドキュメントページから:
Z:\sysosd>plink login.example.com 'echo "Hello World"'