IPアドレスからMACを取得します。取得には、コマンドプロンプトを起動し、arpコマンドを発行。
結果をクリップボードにコピーし、そこからIPアドレスを検索します。
arpコマンドを発行する前に、pingを発行するとarpテーブルを更新されます。
Pingの実行とセットで使用してください。

arp -a を発行し、物理アドレスの部分だけを取り出します。
' ------------------------------------------------------------
' 説明:IPアドレスからMACアドレスを取得する(arp コマンドを使用)
' 引数:1:MACアドレスを取得したIPアドレス
' 戻値:MACアドレス
' 補足:-
' ------------------------------------------------------------
Function GetMacAddr(addr As String)
Dim data As Variant
Dim result As Variant
Dim wk As String
' コマンドプロンプトを実行しクリップボードに取得する
CreateObject("WScript.Shell").Run "%ComSpec% /c arp -a|clip", 0, True
' 取得した情報を配列に格納する
data = Split(GetObject("\", "htmlfile").ParentWindow.ClipboardData.GetData("text"), vbCrLf)
' MACアドレスを含む情報を検索する
For Each result In data
If result Like "* " & addr & " *" Then
wk = Trim(Replace(result, addr, "")) ' IPアドレスを除去
wk = Trim(Replace(wk, "動的", "")) ' 種類を除去(英語の場合は、dynamicにしてください)
wk = Trim(Replace(wk, " ", "")) ' スペースを除去
GetMacAddr = wk
Exit Function
End If
Next
End Function
【補足】
アンチウィルスの種類によっては、スクリプト実行時に処理をブロックすることがあります。
Norton360 アンチウィルスの例は、次を参照してください。
スクリプト実行時の確認(アンチウィルス)


コメント