#navi(../)
* VBスクリプトでネットワークカードのIPアドレス等を取得する方法 [#deba8d10]
VBスクリプトでネットワークカードのIPアドレスを取得するサンプルコードを以下に記します。~
以下の参考記事にあったスクリプトをそのまま動作確認したものと、一部他の情報を取得できるように追記しました。
#contents
#htmlinsertpcsp(win-top.html,win-sp.html)
* 参考記事 [#x677cd3a]
-[[patagonの日記: [コンピュータ,ネット]IPアドレス情報を取得する(VBS)>http://slashdot.jp/journal/443008/%5B%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF,%E3%83%8D%E3%83%83%E3%83%88%5DIP%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E6%83%85%E5%A0%B1%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8BVBS]]
-[[Win32_NetworkAdapterConfiguration>http://msdn.microsoft.com/en-us/library/aa394217%28v=vs.85%29.aspx]]
* IPアドレスおよびネットワーク名を取得する [#m80b6966]
以下のスクリプトは上記参考記事にあったスクリプトです。
#ref(nic.vbs)
strComputer = "."
Set objWMIService = GetObject _
("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery _
("Select * From Win32_NetworkAdapterConfiguration " & _
"Where IPEnabled = True")
For Each objItem in colItems
Wscript.Echo "Caption: " & objItem.Caption
For Each objAddress in objItem.IPAddress
Wscript.Echo "IP Address: " & objAddress
strIPAddress = objAddress
Next
Next
上記スクリプトをコマンドラインのcscriptで起動した時の出力です。
C:\Users\sakura\Desktop>cscript nic.vbs
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.
Caption: [00000011] Intel(R) WiFi Link 1000 BGN
IP Address: 192.168.43.65
IP Address: fe80::c12a:d9df:aa57:bf13
Caption: [00000018] VirtualBox Host-Only Ethernet Adapter
IP Address: 192.168.56.1
IP Address: fe80::40c6:cdbb:4817:cc00
キャプション、IPv4、IPv6の情報が表示されます。
* MACアドレスとサブネットマスクも表示してみる [#z8720d19]
参考資料のWin32_NetworkAdapterConfigurationをもとにコードを追記します。
#ref(nic2.vbs)
strComputer = "."
Set objWMIService = GetObject _
("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery _
("Select * From Win32_NetworkAdapterConfiguration " & _
"Where IPEnabled = True")
For Each objItem in colItems
Wscript.Echo "Caption: " & objItem.Caption
Wscript.Echo "MAC: " & objItem.MACAddress
For Each objAddress in objItem.IPAddress
Wscript.Echo "IP Address: " & objAddress
Next
For Each objSubnet in objItem.IPSubnet
Wscript.Echo "Subnet: " & objSubnet
Next
Next
上記スクリプトをコマンドラインのcscriptで起動した時の出力です。
C:\Users\sakura\Desktop>cscript nic2.vbs
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.
Caption: [00000011] Intel(R) WiFi Link 1000 BGN
MAC: 00:1E:64:22:19:F4
IP Address: 192.168.43.65
IP Address: fe80::c12a:d9df:aa57:bf13
Subnet: 255.255.255.0
Subnet: 64
Caption: [00000018] VirtualBox Host-Only Ethernet Adapter
MAC: 08:00:27:00:A0:E8
IP Address: 192.168.56.1
IP Address: fe80::40c6:cdbb:4817:cc00
Subnet: 255.255.255.0
Subnet: 64
以上、VBスクリプトでNICのIPアドレス、NIC名、MAC、サブネットマスクを取得するサンプルコードでした。
#htmlinsertpcsp(win-btm.html,win-sp.html)