すみません。どなたかご存知でしたら教えてください。
私はVBの初心者です。VB2005を使用しています。
IPアドレスを指定し、そのPCのコンピュータ名を取得したいと考えています。色々調べたところ、APIを呼び出さなければいけないところまではわかったのですが、その先がなかなか判明しません。
Myクラスを使うとローカルPC名は簡単に取得できるのですが、
リモートとなると、なかなかどのサイトにも乗っていません。
リモートPCはメールサーバや、WEBサーバではなく、ただのクライアントなので、DNS引きの取得方法では取得できないようです。
すみませんが、困っています。
よろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
既に回答されている方と殆ど似ていますがURLだけ・・・。
http://hiro.wankuma.com/VBNET2003/Network/Networ …
ネットワーク系のPGを作ったことがないので的外れかもしれません。
多分DNSのところで引っかかると思いますけど。^^;
リモート先のPCはいじることができないんですよね。
いじれるなら、サバクラ形式でデータのやりとりができる気がしますけど・・・。
お役に立てなくてすみません。
いえいえ。
どうもありがとうございます。
上記URLで確認したところ、やはりDNSを使用しているので、
クライアント名は取得できませんでした。
調べていたところ、WMIを使えば、なんとかできるかもしれません。
下記のプログラムですが、ローカル名を取得するものです。
(丸々コピーです)
Set OpSysSet = GetObject("winmgmts:{impersonationLevel=impersonate,(RemoteShutdown)}").ExecQuery("select * from Win32_OperatingSystem where Primary=true")
for each OpSys in OpSysSet
WScript.Echo OpSys.CSName'コンピュータ名
WScript.Echo OpSys.Caption'OSの種類
Next
これを使って、リモートコンピュータに応用できないでしょうか?
No.4
- 回答日時:
#3です。
連続投稿すみません。
あれから気になっていろいろ調べてみました。
http://support.microsoft.com/default.aspx?scid=k …
がNetBIOS系の取得方法。
でも、多分失敗すると思います。
で、技術者ページから探した結果できそうなWMIを使用した方法。
※同じ質問をしている方が居ました。
http://www.microsoft.com/japan/technet/scriptcen …
もしかしたら既に拝見になっているかもしれませんが、一番下のコードが使えそうです。
試したかったのですが、環境が簡単に作れるもので無いので全く実行していません。
本当に申し訳ないです。
頑張って下さい。
わざわざどうも、ありがとうございました!!
両方とも確認させていただきました!
で、2番目のURLなんですが、
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * From Win32_ComputerSystem")
For Each objItem in colItems
Wscript.Echo objItem.Name
Next
となっていました。リモートに接続する時は、ドットとIPアドレスにするということでしてみたのですが、エラーが返ってきます・・・orz
難しいですね。
「書き込みできません。getobjectエラー」だそうです。
やり方はテキストメモに貼り付けて、拡張子をvbsにしただけです。
やり方が間違ってますか?
初心者ですみません。できたらVB2005で実施したいのですが、
もう少し細かく教えていただいてもよろしいでしょうか?
すみませんが、よろしくお願いいたします。
No.2
- 回答日時:
単純にこんなんとか。
(行頭のインデント用スペースはブラウザ表示用に全角を使ってます)
Imports System.Net
Imports System.Net.NetworkInformation
Module Module1
Sub Main()
Dim ipAddr As IPAddress = IPAddress.Parse("192.168.3.1")
Dim hostEntry As IPHostEntry = Nothing
hostEntry = Dns.GetHostEntry(ipAddr)
Console.Write(hostEntry.HostName)
Console.ReadLine()
End Sub
End Module
どうもありがとうございました!!
一度上記プログラムで実施してみました。
自分のIPアドレスをしてすると、正常にコンピュータ名が取れますが、
その他、他のクライアントのIPアドレスを入力すると、ホスト名ではなく、そのままIPアドレスが表示されてしまいます。
これはDNSで引けなかったので、そのまま表示していると思われます。
難しいです。
このプログラムは初心者の私には大変勉強になりました。
ありがとうございます!!
No.1
- 回答日時:
ActiveDirectory(LDAP)とかドメイン参加してると簡単にホスト名を取得できるんですが...
たぶん、今の場合はワークグループも考慮したい
しかも各クライアント端末のコンピュータ名をIPアドレスから逆引きしたいと...
解決としては、NetBIOS関係を調べてみると幸せになれます
あと、C#ですがサンプルがあります
CodeZine
カテゴリ > Windows > C# > ネットワーク
NetBIOSネームサービスでネットワーク内の端末をリアルタイムに列挙する
[中級] NBNSプロトコルの解釈とパケットの送受信
http://codezine.jp/a/article/aid/192.aspx
どうもありがとうございました。
C#はまったくわからないのですが、関数的にはよく似ていると思うので
一度調査してみます!!
やりたいことはNetbios系ですよね・・・。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(コンピューター・テクノロジー) batファイルでPCの設定内容やプロパティーを取得したいのですが、コマンド1個で1ファイルとなるのを 2 2022/04/27 15:27
- ポイントサービス・マイル E-TAXについて 2 2023/02/12 16:18
- 確定申告 確定申告自体が初めてのE-TAXについて 4 2023/02/12 19:32
- VPN DNS「8.8.8.8」とは何なのでしょうか? 固定 IP アドレスで光回線の代わりに使えますか? 4 2022/10/17 16:30
- ネットワーク 瞬快 コンソール操作 ローカル端末のファイルをリモート端末にコピーする方法がない? 1 2023/03/17 18:56
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- FTTH・光回線 インターネット PC ゲームについて 契約回線のマニュアルに工場出荷時のIPアドレスが振られておりま 1 2023/04/27 21:46
- Windows 10 外出先からのリモートデスクトップ接続が出来ない 2 2023/03/04 11:56
- 医療事務・調剤薬局事務 専門学生 23卒です。志望動機の添削お願いします。 医療事務の資格(医科、歯科、調剤、クラーク、介護 1 2022/07/28 15:51
- 画像編集・動画編集・音楽編集 簡単な画像処理ソフトを探しています 5 2023/02/20 17:53
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでActiveDirectoryのユーザ...
-
VB.NETで DataRow()を利用して...
-
VBA:小数点以下の数字を取得で...
-
like演算子内に変数って使えな...
-
データ数をカウントしたいのですが
-
アクセスしてきたコンピュータ...
-
Spreadの選択行の取得について
-
利用者側のMACアドレスを取得し...
-
ListViewで複数選択された項目...
-
VB .netにて現在時刻+1時間後...
-
getParameter と getAttribut...
-
VBA リストボックス内の値を複...
-
.NETで現在時刻を常に動作させ...
-
UWSCでhtmlソースの文字列を取...
-
リクエストからArrayListのデー...
-
エクセルVBAで複数選択できるよ...
-
URLパラメータの取得方法を教え...
-
DataGridView 複数選択で行番...
-
JavaScriptにおいてコンピュー...
-
count(*)で取得した値をJAVAの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでActiveDirectoryのユーザ...
-
VB.NETで DataRow()を利用して...
-
ListView 項目の選択/選択解除...
-
VBA:小数点以下の数字を取得で...
-
count(*)で取得した値をJAVAの...
-
データ数をカウントしたいのですが
-
like演算子内に変数って使えな...
-
ListViewで複数選択された項目...
-
Flexgridで選択行の列の値を取...
-
エクセルVBAで複数選択できるよ...
-
JavaScriptでWindowsログオンID...
-
利用者側のMACアドレスを取得し...
-
郵便番号検索APIにてget Elemen...
-
COMポート 名前を取得する方法
-
コンボボックス表示文字列を取...
-
VBA Shapesの座標からセル位置...
-
Spreadの選択行の取得について
-
VBScriptで数値にコンマを付け...
-
C言語におけるコンピュータ名・...
-
Excel VBA でログインしてい...
おすすめ情報