- - PR -
ネットワークに繋がったコンピュータが起動しているかチェックする方法
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-04-07 14:04
こんにちは、VB.Netにてネットワークに繋がったコンピュータが起動しているかチェックを行いたいのですが
どのような方法がありますでしょうか? チェックする項目としては ・PCが起動していてネットワークに繋がっているか? DosのPingコマンドを実行してその結果で判断する方法があると思いますがそのほかにもあるようでしたら ご教授願います。 | ||||||||
|
投稿日時: 2005-04-07 14:25
今日は。
単純に起動しているかどうかならpingで十分でしょう。 (実際市販の監視ツールとかもそれで見てますし) でもSolarisとかだと、ネットワークが起動していても マルチユーザモードじゃ無いって事もあります。 なので、更に何かしらサービス(TCPポートが使えるか?) をチェックするのが良いと思いますよ _________________ Inspired Ambitious ISMS Assistant Auditor | ||||||||
|
投稿日時: 2005-04-07 14:41
確認する方法自体はプロトコルの数だけあると思ったほうが良いでしょう。どの方法が適しているかは、「何のためにチェックしているのか?」とか「『起動している』と言う状態をどのように定義するか?」によるでしょう。pingコマンドで確認していると言うことは、icmpエコーリクエストに応答することを「起動している」と見なすわけですよね。当然Firewall等でエコーへの応答を禁止していれば、起動していないと判断することになります。 特定のTCPポートでListenしている状態を起動していると見なすなら、Synパケットを送信してSynAck応答を監視すると言う方法もあります。 | ||||||||
|
投稿日時: 2005-04-07 15:52
NAOさん、甕星さん回答ありがとうございます。
説明が足りず申し訳ございません。 やりたいことは クライアント(Windows)からから特定のサーバ(Windows)にイベントログを書くのですが その時に特定のサーバが稼動しているかチェックを行いたいのです。 例えばサーバがダウンしている時やネットワークケーブルが外れているときなどに イベントログを書こうとするとエラーになるのですがその時に時間がかかるため 最初にサーバが動作しているということをチェックしたいのです。 | ||||||||
|
投稿日時: 2005-04-07 16:00
ならばPINGとイベントログを書く時に通信で使うポートを監視すれば良いのでははいでしょうか?
だったかな? _________________ Inspired Ambitious [ メッセージ編集済み 編集者: NAO 編集日時 2005-04-07 16:41 ] | ||||||||
|
投稿日時: 2005-04-07 16:28
Pingコマンドを実行した結果をプログラムで取り出したいなら、こんな 方法もあります。 http://www.codezine.jp/a/article.aspx?aid=45 まぁ、やってることは一緒ですが。 | ||||||||
|
投稿日時: 2005-04-07 17:41
NAOさん
>ならばPINGとイベントログを書く時に通信で使うポートを監視すれば良いのでははいでしょうか? そうですね どっとねっとふぁんさん >Pingコマンドを実行した結果をプログラムで取り出したいなら、こんな方法もあります。 >http://www.codezine.jp/a/article.aspx?aid=45 WMIのPingStatusはWindows XPでないと利用できないですよね、こちらは2000を利用しているので.... そうなるPINGの結果をリダイレクトしてファイルに出力するしか方法が無いのでしょうか? できればファイル利用したくないのでほかに方法をご存知であればご教授願います。 [ メッセージ編集済み 編集者: Natsume 編集日時 2005-04-07 17:47 ] | ||||||||
|
投稿日時: 2005-04-07 17:42
そのイベントログはリモートDISKか何かで書き込むのですか? それなら、 1.Ping 2.サーバーのフォルダにテンポラリのファイルを書く(小さなファイルで可) の2段階で見ればどうでしょうか? 物理的な切断は1.でわかるでしょうし、権限等の設定関係は2.でわかる と思いますよ。 |