vc++でtelnet

このQ&Aのポイント
  • 現在、コマンドプロンプトでtelnetを起動し、特定のコマンドを投げる作業があります。
  • 特定のコマンドがあるパラメーターの違いだけであり、簡単に投げられるような画面を作成したいと言われました。
  • しかし、コマンドを投げた後、アプリ画面に制御が戻らず困っています。
回答を見る
  • ベストアンサー

vc++でtelnet

お世話になります。 現在、コマンドプロンプトでtelnetを起動し、ある特定のコマンドを投げている作業があります。特定のコマンドが、一つのパラメーターが違うだけなので、ボタンを押してそのコマンドを投げられるような画面を作って...と言われました。 CreateProcessを使って、cmd→telnet→標準出力...で、 (1)画面アプリ起動(初期処理:CreatePorcess(cmd telnet xxx.xxx.xxx.xxx)) (2)ボタンクリック (3)cout << abc 1 2 3 <<endl (コマンド投入) (4)ボタンクリック (5)cout << abc 1 2 4 <<endl etc.. (6)終了ボタンclick(telnet終了:quit、cmd終了:exit) などでいけるかなと思ったのですが、(3)でアプリ画面のほうに制御が戻ってきません。 コンソール画面を表示して確認すると、投入はできてる感じで、入力待ちになってるようです。 そこでenterを押しても画面には戻らず、、enter→quitで戻る?! 通信系は苦手ですが、コマンドプロンプトでやってることをそのままだから とは思ったものの...omz 根本的に間違っているでしょうか? サンプルコードも探したのですが、見つからず質問させていただきました。 teratermマクロ...など見つけたのですが敷居が高いのとteratermのインストールは×みたいで。webアプリも駄目といわれ。。。 どうかアドバイスをお願いいたします!

  • jg1wjz
  • お礼率91% (148/162)

質問者が選んだベストアンサー

  • ベストアンサー
  • kteds
  • ベストアンサー率42% (1876/4424)
回答No.1

>根本的に間違っているでしょうか? コマンド(cmd)を実行しているわけですので、目的としているような画面には結果は反映されません。 >teratermマクロ...など見つけたのですが敷居が高いのとteratermのインストールは×みたいで。 Rlogin(rlogin.exe)はインストール不要ですぐ実行できます。 ただし、実行時にレジストリは使用します。 考え方としてはrlogin.exe実行時にコマンドラインでのオプションを指定して起動すればいいです。 例えば rlogin /telnet とすればサーバーへのログオン画面が表示されます。 ---下記サイトにRLoginのすべてが説明されています。 http://nanno.dip.jp/softlib/man/rlogin/ コマンドラインのオプションは http://nanno.dip.jp/softlib/man/rlogin/#CMDLINE

jg1wjz
質問者

お礼

kteds さま、ありがとうございます。 特にcmdを実行しないで、直接telnetを実行するのも試しました。動作は同じで、telnetの中で処理をした後止まってるようで、起動元の画面に戻ってきません。 ...telnetにコマンドを投入したら、(それを処理すると思うので)telnetを終了して制御をもとの起動した画面に戻したいのです。 ボタンを押したら、telnetに接続してコマンド投入して、telnetを終わらせる..、そしてまたボタンを押したら同じように処理して終わる...がやりたい一連の流れです。 ##rlogin /telnet ##とすればサーバーへのログオン画面が表示されます。 このログオン画面での入力も自動で行いたい、さらにログイン成功後の処理用コマンドもプログラムで自動投入したいのです。そして、投入した処理をしたらプログラムでtelnetを終わらせてRLoginも終わらせて..が希望です。 RLoginではそのようなことができるでしょうか。(試していないのにすみません) WEB上にそれをやってる画面がありまして、読み切れていませんがajaxなど使っているようです。WEBで処理してOKなら、マネしてできそうなのですが、オフラインで動かすことを要求されています。 引き続きよろしくお願いいたします。

jg1wjz
質問者

補足

時間がなかったので やりたいことをbatファイルにして system関数で動かすことができました。 とりあえず、これで進めてあとで なぜできなかったか調べたいと思います。 ありがとうございました。

関連するQ&A

  • 自動でtelnet

    お世話になります。 ボタンクリックすると自動でTelnetを起動しコマンドを投げてtelnetを終了する...処理を作っています。 telnet接続からの操作はvbsで作成、 そのvbsをbatfileで起動するようにしました。 古いパソコン環境で動かす(32bit)というので、あえてvc++6.0で作成し正常に、動きました。 それを64bitのWindows2012で動かしたら、vbsの中のtelnetの接続のところでエラーになります。  'telnet'は、内部コマンドまたは外部コマンド、  操作可能なプログラムまたはバッチファイルとして認識されていません と、なります。 telnet clientはinstallしてあり、 コマンドプロンプトでbatファイルをたたくとちゃんと正常に動きます。 batファイルをダブルクリックでも動きます。 コマンドプロンプトでcscript xxx.vbs  としても正しく動きます。 プログラムから CreateProcessで、「cmd xxx.bat」としているのですが。。。 どこが間違ってるのか、何がダメなのか判断が付かないのです。 至急アドバイスをいただけないでしょうか。 よろしくお願いいたします。

  • Telnetについて

    ある台湾のホームページを見ていた時、掲示板だと思い込み「BBS」と書かれたリンクをクリックしてしまいました。 するとTelnetが起動し、接続中と表示されていたので慌てて右上の×ボタンを押して画面を閉じました。 まだ接続が完了していないうちに終了できたとは思うのですが、切断・終了するためのコマンドを入力せず、×ボタンから画面を閉じてしまったことが気にかかっています。 ×ボタンから終了した場合でも、その時点で接続は正常に終了されているのでしょうか? なお、接続先のホームページはYahoo!の台湾版です。おそらく接続が完了していたとしても、情報を抜き取られるなど悪質な処理が行なわれるわけではないと思うのですが、そのような危険性はないでしょうか? 以上の2点、どなたか教えていただけますと幸いです。よろしくお願いします。

  • TelnetとSshで接続できない

    こんばんは。 WindowsProからLinuxサーバー(ミラクルLinux)への接続に挑戦 しています。※初心者なもので Windowsからpingは通りました。しかし「telnet」「ssh」からが うまく接続できません。状況としては  ・chkconfig でxinetedのランレベル3の起動をデフォルトONにした  ・serviceコマンドでxinetedをstart  ・Windowsコマンドプロンプトから「telnet ip_address」でtelnetのログイン画面に行くがログインできない  ※通常使用しているrootユーザで  ・teraterm proを使ったが でtelnet・sshともに接続自体できない 状況が不安定で恐縮ですがどういった点を確認すべきかアドバイス 頂ければ幸いです。 ちなみにLinuxはVmware上にある仮想サーバーです。 よろしくお願いします。

  • telnetに接続できない

    お世話になります。 redhat linux 7.1をインストールしwindowsからtelnetでログインしようと試みているんですが、出来ません。 ローカルでtelnetコマンドを叩いて、ローカルにはログオンできるんですが、リモートになると無理なんです。 もちろんPINGはとおってます。 chkconfig --listでxinetdベースのサービスでtelnetはオンになっています。 xinetd.d配下のtelnetは過去ログで検索した通りの設定になっています。(disable = no) telnetのクライアントはteratermを使用していまして、プロンプトで、cannot connect the host と帰ってきます。 hosts.allowにはtelnet: (クライアントのIP)と追記しています。 がんばってみましたが、本当にどうすればいいのかわかりません。よろしくお願いします。 後、不足している情報があればご指摘ください。 クライアント w2k redhat linux 7.1 をサーバータイプでインストールしました。

  • C++文字列の挿入、結合のコードについて

    実行結果のような出力をするためには、 以下のコードの(ウ)(エ)(オ)の部分には何を入れたらよいのでしょうか? よろしくお願いします。 #include <iostream> #include <string> using namespace std; int main( ) { string str1="ABCDEF"; string str2="0123"; string str3; string q; do { (ウ) ; cout << str3 << endl; (エ) ; cout << str1 << endl; cout << "quit?"; cin >> q; } while ( (オ) ); cout << "終了" << endl; return 0; } <実行結果(出力結果)> ABCDEF0123 ABC123DEF quit?q ABC123DEF0123 ABC123123DEF quit?qu ABC123123DEF0123 ABC123123123DEF quit?quit 終了

  • Telnetというコマンドプロンプトが開き。。。

    先ほど、とあるサイトでリンクを開こうとしたら、 Telnetと書かれたコマンドプロンプトのような画面が3つ立て続けに開き、成功とメッセージが流れました。 windows mediaplayerも立ち上がりました。 あわてて全てを消したのですが、ウイルスもしくはレジストリの改変などがなされていないか心配です。 これはいわゆるブラウザクラッシャーでしょうか? また、コマンドプロンプトの画面が開いたことが怖いので、何か解決策とうあれば教えていただきたく思います。 今のところおかしな挙動はありません。 OSはウィンドウズXPです。 よろしくお願いします。

  • teratermとコマンドプロンプトの動作が違う

    コマンドプロンプトからできることがtelnetだとできません。 クライアント(windows7)でコマンドプロンプトからtelnetでサーバA(windows2008)に接続して、 サーバAを中継してさらにtelnetでサーバB(windows2008)に接続しています。 これをteratermでやるとサーバAには接続できるのですが、接続先のサーバAから サーバBには接続できません。なぜでしょうか。 teratermでサーバA上からtelnet 192.168.xx.xx(サーバB) とやってもプロンプトが戻ってくるだけです。 ↓こんなふうに >telnet 192.168.xx.xx >

  • telnetコマンドを使うと文字化けが!

    linux画面上にてtelnetコマンドを使いました。telnet先は普通のパソコンです。(Win NT/Win 2000) 通常 C:**\と出力され、dirコマンドをたたいたら日本語で書かれているところが文字化けして、プロンプトも文字化けしてしまいました。 telnetを行う時に文字コードの設定を行う方法はないのでしょうか?教えて下さい。

  • teratermでLinuxに接続できません

    すみませんが、お力を貸してください!! 現在、linuxサーバーへteratermでtelnet接続を行うように設定しています。 しかし接続しようとすると、「タイムアウト」してしまいます。 ■コマンドプロンプトで以下は実行して確認しています ------------------------- ・ping は正常に返してくる ・telnet接続ができる ------------------------- なぜ、コマンドプロンプトから接続した場合は接続できるのに、teratermからでは接続できないのでしょうか? teratermに問題があるのかもしれないと思い、ダウンロードしなおしたのですが、結果は同じです。 私が考えられることは、すべて手をつくしてしまいました。 基本的なことに気付いていないのかもしれませんが、どなたかお助けください。 よろしくお願い致します。

  • タスクスケジューラでのtelnet実行について

    よろしくお願いいたします。 ネットワーク機器に定期的にログインチェックを行う必要が生じたため、 バッチファイルとVBSを作成し、手動で実行すると問題なく動作しました。 ところがWindowsタスクスケジューラでユーザーがログオフした状態で実行すると 異常終了してしまいました。 処理の流れは以下になります。 (1)バッチファイル起動 (2)バッチファイルが適当な名前を付けたコマンドプロンプトを起動。 (3)バッチファイルがVBSを起動 (4)VBSが(2)で起動したコマンドプロンプトをアクティブにする。 (5)VBSがSendKeysメソッドでコマンドプロンプト上でtelnetを実行 原因が分からず困っています。 ユーザーがログオフしている環境ではtelnetは実行できないものなのでしょうか。 どうぞご教授下さい。