OCN光で最大124,800円おトク!

タイトルの通りですが、
WMIスクリプトを使用して、
ASPでMACアドレスの取得を行なっているのですが、
なかなか上手くいきません。

<%@ LANGUAGE="VBSCRIPT"%>
<HTML>
<HEAD>
</HEAD>
<BODY>
<%
Dim QfeSet
Dim QfeSets
Dim Qfe
Dim Locator
Dim Service
Dim Ret

on error resume next

Set Locator = CreateObject("WbemScripting.SWbemLocator")
Set Service = Locator.ConnectServer

If Err = 0 then
Set QfeSet = Service.Get("Win32_NetworkAdapterConfiguration")
QfeSet.Security_.impersonationLevel = impersonate
Set QfeSets = QfeSet.Instances_
End If

For Each Qfe In QfeSet
If Qfe.IPEnabled = True Then
Ret = Qfe.MACAddress & vbCrLf
Response.write("MACADDRESS:" & Ret & "<BR>")
End If
Next
%>
</BODY>
</HTML>

CreateObjectやService.Getのところが
原因ではないかと思うのですが・・・。

どなたか教えて戴けますでしょうか?
宜しくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

サーバーのNICのMACアドレスを取得するのですか?



CreateObjectは Server.CreateObject と言った具合にするのだと思います
ただこうしても セキュリティ関連のエラーで跳ねられてしまいますが…
ConnectServerメソッドでアクセス違反になってしまうので ログオンできるユーザー情報を設定しても無理みたいですよ
    • good
    • 0
この回答へのお礼

回答有りがとう御座います。

>サーバーのNICのMACアドレスを取得するのですか?
いえ、クライアント側です。

>CreateObjectは Server.CreateObject と言った具合にするのだと思います
>ただこうしても セキュリティ関連のエラーで跳ねられてしまいますが…
>ConnectServerメソッドでアクセス違反になってしまうので ログオンできるユーザー情報を設定しても無 >理みたいですよ

そうですか、わかりました。
ありがとう御座いました。

お礼日時:2007/11/06 16:46

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QMacアドレスの取得(ソースは書けたが不安です)

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'1番目の方法
Dim Objquery As New Management.ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE MACAddress is not null")
Dim ObjCollection As Management.ManagementObjectCollection = Objquery.Get
Dim Obj As Management.ManagementObject

For Each Obj In ObjCollection
If (CType(Obj("IPEnabled"), Boolean) = True) Then
Label1.Text = Replace(Obj("MacAddress"), ":", "")
End If
Next

'2番目の方法
Dim computerProperties As IPGlobalProperties = IPGlobalProperties.GetIPGlobalProperties()
Dim nics As NetworkInterface() = NetworkInterface.GetAllNetworkInterfaces()
Dim adapter As NetworkInterface

For Each adapter In nics
Label2.Text = adapter.GetPhysicalAddress().ToString()
Exit For
Next adapter

End Sub


いつもお世話になっております。
以上の2種類の方法のどちらかでMACアドレスを取得したいのですが、あいにく知識不足で、どちらの方がより高い確率で取得できるのでしょう。
ちなみにソースを見る限り、IPアドレスなどは複数持つことができるようです。かなりかなり不安です。

お願いいたします。

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'1番目の方法
Dim Objquery As New Management.ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE MACAddress is not null")
Dim ObjCollection As Management.ManagementObjectCollection = Objquery.Get
Dim Obj As Management.ManagementObject

For Each Obj In ObjCollection
If (CType(Obj("IPEnabled"), Boolean) = True) ...続きを読む

Aベストアンサー

詳しいくないので、役に立たない情報かも知れませんが……

> ネットワークの設定が不十分の場合、

物理的に NIC が端末に接続されていたとしても Windows から認識されていない状態と
「無効」としている場合も取得できないと思います。
(ドライバのインストールは完了していて、デバイスとして認識されていても)

> 物理的なものと、もう一つ「MSアダプタ!?」みたい論理的

Visual Basic 2005 で可能な方法でということと、NIC の種別を絞りこむということであれば
下記のようなもの組み合わせれば可能かも知れません。

1. NetworkInterfaceType 見れば Ethernet であると判断できます。

2. Description の値からはデバイスマネージャに出てくるものと同じようなものが得られるので
ある程度は判断の参考にはなるかと思います。

※ 記述例としてはこんな感じ
Label2.Text = adapter.Description

3. MAC アドレスの 24 ビットはベンダIDになっているのでそれで識別するという方法も
ありますが、リストを持っている必要があるのであまり現実的ではないと思われます。

※ 次のようなサイトで検索して探すことも可能ですが……
Vendor/Ethernet MAC Address Lookup and Search
http://www.coffer.com/mac_find/

> 目的は、このパソコンはユニークの個体であるのを判別

※ これは余計なことなのでスルーして頂いてかまいません。
# ソフトウェアの使用制限にでもお使いになるのでしょうか?
# だとしたら、どれを使って登録するかをユーザに選ばせてその条件で
# 登録コードなどを発行するほうが無難ではないでしょうか?

詳しいくないので、役に立たない情報かも知れませんが……

> ネットワークの設定が不十分の場合、

物理的に NIC が端末に接続されていたとしても Windows から認識されていない状態と
「無効」としている場合も取得できないと思います。
(ドライバのインストールは完了していて、デバイスとして認識されていても)

> 物理的なものと、もう一つ「MSアダプタ!?」みたい論理的

Visual Basic 2005 で可能な方法でということと、NIC の種別を絞りこむということであれば
下記のようなもの組み合わせれば...続きを読む

QLAN経由で他のPCのMACアドレスを調べることは可能でしょうか?

職場に存在する多数のPCのMACアドレスを、調べる方法を探しています。それらPCの利用者の邪魔にならないように、LAN経由でMACアドレスを調べることができたらと考えています。どうか方法をご存知の方は教えてください。

Aベストアンサー

同一サブネット内でIPアドレスが既知ならば
コマンドプロンプトで
ping IPアドレス を実行後

arp -a を実行すれば IPアドレスとMACアドレスが表示されます
arp -a > IP.txt とすれば IP.txtに結果が保存されます


人気Q&Aランキング