サーバーからクライアント側のMACアドレスを取得するには?

解決


TOCO  2007-11-12 11:43:49  No: 138096  IP: 192.*.*.*

今MACアドレスの取得を行なおうとプログラムを作成しているのですが、
WMIでMACアドレスを取得できたのですが、
サーバーからクライアント側のMACアドレスが取得できず困っています。
分かる方いらっしゃいましたら教えて戴けますでしょうか?
宜しくお願い致します。

編集 削除
ガッ  2007-11-12 18:43:47  No: 138097  IP: 192.*.*.*

これだけじゃ情報が足りません
どんなサーバソフトに、どんなクライアントソフトで接続して、
どんなネットワークになっていて、どのようなプロトコルを使用しているのか
等、状況を具体的に書いてください

編集 削除
オショウ  2007-11-13 00:12:33  No: 138098  IP: 192.*.*.*

iphlpapi.dll の、SendARP を調べてみてください。
以上。

編集 削除
TOCO  2007-11-13 14:39:29  No: 138099  IP: 192.*.*.*

ガッさん返答ありがとう御座います。
>これだけじゃ情報が足りません
>どんなサーバソフトに、どんなクライアントソフトで接続して、
>どんなネットワークになっていて、どのようなプロトコルを使用しているのか
>等、状況を具体的に書いてください

すみません。
まだ知識があまりなくて。
会社とかで一般的に使用するサーバと一緒かと思うのですが・・・。

オショウさん返答ありがとう御座います。

>iphlpapi.dll の、SendARP を調べてみてください。

すみません。その調べ方すら分からないのですが・・・。


補足説明します。
この処理を今ASPで行なっております。
<HTML>
<HEAD>
<TITLE>MACアドレスの表示</TITLE>
</HEAD>

<BODY>
<Form method="post" name="form1">
<input type="hidden" name="h_MACaddress" value="<%= MACA %>">
<%

Dim MACA

ConnectString = "winmgmts:{impersonationLevel=impersonate}!root\cimv2"
Query = "SELECT MACaddress "
Query = Query & " FROM Win32_NetworkAdapterConfiguration"
Query = Query & " WHERE IPEnabled=TRUE"

On Error Resume Next
Set IPConfigSet = GetObject( ConnectString ).ExecQuery( Query )

For each IPConfig in IPConfigSet            Response.Write("MACADDRESS: ")
    Response.Write(IPConfig.MACaddress & "<br>")
    MACA = IPConfig.MACaddress
Next
%>

</BODY>
</HTML>

これをサーバーの既定のWEBサイトの仮想ディレクトリに入れてあります。
クライアント側からこのASPを動作させるとサーバーのMACアドレスが取得できます。
これをサーバーからクライアントのMACアドレスを取得できるようにしたいのですが
こんな事ができるかどうかわからないので質問をしました。

本当に情報不足ですみませんが、宜しくお願い致します。

編集 削除
あもん  2007-11-14 11:13:44  No: 138100  IP: 192.*.*.*

requestオブジェクトでリモートアドレス取得して
getmac
でどうでしょう?

編集 削除
TOCO  2007-11-15 09:15:27  No: 138101  IP: 192.*.*.*

みなさんアドバイスありがとう御座いました。
一応クライアント側のMACアドレスを取得する事ができました。
クライアントスクリプトを使用する事で解決いたしました。

<HTML>
<HEAD>
<TITLE>MACアドレスの表示</TITLE>
<SCRIPT Language="VBScript">
<!--
'-----------------------------------
'MACAddressを取得
'
'-----------------------------------
Option Explicit

Dim QfeSet
Dim Qfe
Dim Locator
Dim Service
Dim Ret                            
Set Locator = CreateObject("WbemScripting.SWbemLocator")
Set Service = Locator.ConnectServer
Set QfeSet = Service.ExecQuery("Select * From Win32_NetworkAdapterConfiguration")

For Each Qfe In QfeSet
  If Qfe.IPEnabled = True Then
    Ret = Qfe.MACAddress & vbCrLf
  End If
Next

document.write("MACADDRESS: " & Ret)

Set QfeSet = Nothing
Set Qfe = Nothing
Set Service = Nothing
//-->
</SCRIPT>
</HEAD>

<BODY>

</BODY>
</HTML>


またわからない時は質問致しますので、
その時はご指導よろしく御願い致します。

編集 削除