PowerShellでMACアドレスからメーカー(ベンダー)を調べてみる。
まずは、MACアドレスを取得する。
MACアドレスの取り方はいろいろあるけど、ここでは、「nbtstat」コマンドを利用することにした。
まぁ一行であっさり書きたかっただけだけど。
--- Get-MACAddress.ps1 ---
- param([string]$ip)
-
- nbtstat -A $ip | ForEach-Object { if ( $_ -match "MAC") { $_ -replace " ","" -replace "MACアドレス=","" } }
次に、取得したMACアドレスからメーカーを調べる。
メーカーを調べるサイトは、ここを利用させてもらう。
--- Find-MacAddressFromVendorName.ps1 ---
- param([string]$macaddress)
-
- [void]([Reflection.Assembly]::LoadWithPartialName("System.Web"))
- $macaddress = [Web.HttpUtility]::UrlEncode($macaddress)
- $webReq = [Net.HttpWebRequest]::Create("http://www.coffer.com/mac_find/?string=$macaddress")
- $webReq.Method = "GET"
- $webReq.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)"
-
- $webRes = $webReq.GetResponse()
- $sr = New-Object IO.StreamReader($webRes.GetResponseStream(), $webRes.ContentEncoding)
- $content = $sr.ReadToEnd()
- $sr.Close()
- $webRes.Close()
-
- $content = $content.Split("`n")
-
- $result = $content | ForEach-Object {
- if ($_ -match "table2" -and $_ -match "td") {
- $_ -replace "<.*?>","" -replace "`t","" }
- }
-
- $obj = New-Object PSObject
- $obj | Add-Member NoteProperty MacAddress $macaddress
- $obj | Add-Member NoteProperty Vendor $result[1]
- $obj
利用方法は、パスを通したところにスプリクトを保存しておいて、
> Find-MacAddressFromVendorName ( Get-MACAddress 192.168.0.1)
MacAddress Vendor
---------- ------
XX-XX-XX-XX-XX-XX XXX
っといった感じ。