C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: ネットワーク上の全PC名を取得するのは?


(過去ログ 67 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■38952 / inTopicNo.1)  ネットワーク上の全PC名を取得するのは?
  
□投稿者/ hs (106回)-(2009/07/28(Tue) 10:34:45)

分類:[VB.NET/VB2005 以降] 

VS2008-VBです。

ネットワーク上のすべてのPC名を取得する方法がわかりません。

検索した結果 http://www.kit.co.jp/vbit/QAndA08.htm が一番有力だと思うのですが、
公開されているソースの使い方がわかりません。

やりたいことは、メインPCに外づけで共有できるHDDを接続、クライアントPCでそのHDDをドライブに割り当てるということです。
もちろん手動で設定することは可能なのですが、メインPCからHDDを外すという可能性があり検証してみました。

すると一度HDDをPCから外し再度HDDを挿入したところ、ドライブは割り当てられているのですが肝心のHDDの中身が見れなくなってしまいました。
HDDの認識に最初は時間がかかっているのだと思ったのですが、F5押下(再読み込み)しても、いくら待ってもHDDが認識されません。
そこで一度割り当てたドライブを切断し、再度割り当てを行った結果HDDが正常に認識されました。

ということで、
・PGでアプリケーション起動時にネットワークにあるPC名を一度すべて取得し、メインPCがあるかを判別。
・メインPCがあれば、それをドライブに割り当てる。
・空いているドライブ名を取得し起動時に使用ドライブ名を決定。
・アプリケーション終了時割り当てたドライブを切断。
という手順をとることにしました。

そこでネットワークにあるPC名を一度すべて取得、あいているドライブを判別したいのですが、PGがわかりません。

皆さんご教授よろしくお願いいたします。
引用返信 編集キー/
■38953 / inTopicNo.2)  Re[1]: ネットワーク上の全PC名を取得するのは?
□投稿者/ 774RR (374回)-(2009/07/28(Tue) 10:37:22)
えー、世界中に広がるネットワーク上のコンピュータ何億台あるかわからないけどそれ全部ということ?
同一 LAN (同一 netmask) 配下のPC?
同一ワークグループ? 同一アクティブディレクトリ?
その辺はっきりしないと・・・
引用返信 編集キー/
■38954 / inTopicNo.3)  Re[1]: ネットワーク上の全PC名を取得するのは?
□投稿者/ .SHO (975回)-(2009/07/28(Tue) 10:42:23)
> ・PGでアプリケーション起動時にネットワークにあるPC名を一度すべて取得し、メインPCがあるかを判別。
> ・メインPCがあれば、それをドライブに割り当てる。

「メインPC」の定義がわかりませんが、メインPCだけ探せばいいのでは?
引用返信 編集キー/
■38962 / inTopicNo.4)  Re[2]: ネットワーク上の全PC名を取得するのは?
□投稿者/ hs (107回)-(2009/07/28(Tue) 11:07:30)
No38953 (774RR さん)
> えー、世界中に広がるネットワーク上のコンピュータ何億台あるかわからないけどそれ全部ということ?

大変失礼いたしました。 ローカルのワークグループという事でした;


No38954 (.SHO さん)
>「メインPC」の定義がわかりませんが、メインPCだけ探せばいいのでは?

たびたび説明不足で申し訳ありません。
現在、VistaをメインPC(管理用)をサーバーとして、クライアントPC(Vista/XP混合)を数十台を1つのネットワークにしてシステム設計を行っております。
メインPCにデータベース(未定)と幾つかの動画などファイルを管理しようと思っております。
また、いくつかのファイルは外付けのHDDで管理することになりました。

そこで.SHOさんのおっしゃる通りメインPCだけ探せば事足りるのですが、今後のために(今は目的なし)と思いすべて取得する方法を知っておいたほうが良いと思い今回の質問になりました。

よろしくお願いします。
引用返信 編集キー/
■38964 / inTopicNo.5)  Re[1]: ネットワーク上の全PC名を取得するのは?
□投稿者/ オショウ (285回)-(2009/07/28(Tue) 11:13:25)
No38952 (hs さん) に返信
> やりたいことは、メインPCに外づけで共有できるHDDを接続、クライアントPCでそのHDDをドライブに割り当てるということです。
> もちろん手動で設定することは可能なのですが、メインPCからHDDを外すという可能性があり検証してみました。
>
> すると一度HDDをPCから外し再度HDDを挿入したところ、ドライブは割り当てられているのですが肝心のHDDの中身が見れなくなってしまいました。
> HDDの認識に最初は時間がかかっているのだと思ったのですが、F5押下(再読み込み)しても、いくら待ってもHDDが認識されません。
> そこで一度割り当てたドライブを切断し、再度割り当てを行った結果HDDが正常に認識されました。

  と言うことは、HDDを取り外した段階で、そのPC上の共有設定が消滅
  したと言うこと。

  再度、メインPCにHDDを接続してもクライアントではその共有設定し
  た過去の情報が食い違うので、そのままでは自動的に接続されない。

  と言う結果かと。

  接続しっぱなしの方法では、無理ではないかと。

● API的に都度、必要な時点で接続して、切断させるのは問題ありません。

  その折、わざわざネットワーク上の全PCを列挙しなくても、『メインPC』
  と解っているので、そのPCの共有ドライブに直接接続に行けば、問題ない
  かと。

  WNetAddConnection2
  WNetCancelConnection2

  このAPI使って、接続・切断できます。
  お試しあれ・・・

以上。
引用返信 編集キー/
■38966 / inTopicNo.6)  Re[3]: ネットワーク上の全PC名を取得するのは?
□投稿者/ オショウ (286回)-(2009/07/28(Tue) 11:23:01)
No38962 (hs さん) に返信
> また、いくつかのファイルは外付けのHDDで管理することになりました。

  NASにした方が、よいのでは?

> そこで.SHOさんのおっしゃる通りメインPCだけ探せば事足りるのですが、今後のために(今は目的なし)と思いすべて取得する方法を知っておいたほうが良いと思い今回の質問になりました。

  ネットワーク上のPC列挙と、共有資源への接続・切断は分けて考えれば?
  PCの列挙に時間かけても、共有資源云々の主たる機能が何時まで経っても
  実現できない・・・

● PCの列挙方法は、いくつも方法があり・・・

  ドメイン・グループ傘下で列挙する方法や、そのセグメント内を対象に
  IPアドレス的に列挙する方法・・・
  要は、仮に、192.168.0.2〜192.168.0.254に順にpingをプログラム的に
  打って、存在するPC(応答があるのが大前提)を発見したら・・・
  と言う手法。

  昨今、セキュリティでpingに応答しないネットワーク設定を行っている
  場合が多いので、後者の方法は使えない場合がありますが・・・

  それと・・・

> 検索した結果 http://www.kit.co.jp/vbit/QAndA08.htm が一番有力だと思うのですが、
> 公開されているソースの使い方がわかりません。

  私は『何で?』と逆に聞きたい・・・
  変更可能なパラメータに何等かの情報入れて何度かテストすれば、その
  結果でわかるはず。
  ソースコード読んで解らない・・・だけでは、どうしようもないかと。

以上。
引用返信 編集キー/
■38985 / inTopicNo.7)  Re[4]: ネットワーク上の全PC名を取得するのは?
□投稿者/ hs (108回)-(2009/07/28(Tue) 15:10:41)
No38966 (オショウ さん) に返信
> NASにした方が、よいのでは?

恥ずかしながらNASというものを今回初めて知りました;
いろいろとNASについて調べた結果、NASを導入する方向が濃厚になりました。

ありがとうございました。


解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -