Windows_PowerShell_iconadresy MAC to tzw. OUIs – Organizationally Unique Identifier przyznawane przez IEEE. wszystkie można ściągnąć w postaci pliq textowego (1oMB). w związq z tym skrypt, który odpytuje się o MACa może albo wykorzystać jakieś query dostępne w necie, albo ściągną bazę lokalnie i operować na lokalnym pliq.

plik można ściągnąć na kilka sposób. w tym przypadq invoke-webRequest się wywala ze względu na timeout [duża wielkość pliq]. można zmienić timeout, można oprogramować metodę [System.Net.WebClient] … a można wykorzystać BITS.

poniżej prosty skrypcik, do weryfikacji MAC vendor, po uprzednim zassaniu oui.txt lokalnie. to na co warto zwrócić uwagę – to alternatywny sposób na pobieranie pliqw z netu, oraz parametr ‘context’ dla select-string.

get-MACAddressVendor.ps1

################################################################################################
#.SYNOPSIS
#   simple script getting NIC vendor by checking MAC address OUI table. 
#   use -webAPI to use remote query. otherwise out.txt file will be download locally.
#.LINKS
#   oui file: http://standards-oui.ieee.org/oui.txt
#   remote query API: http://www.macvendorlookup.com/api
#.NOTES
#   nExoR 2o16
################################################################################################
param([string]$macAddress,[switch]$webAPI) 

$macAddressToVerify=$macAddress.Replace(':','').Replace('-','').ToLower()
$macAddressToVerify=$macAddressToVerify.Substring(0,6)
if($macAddressToVerify -notmatch [regex]'[0-9a-f]{6}') {
    throw 'NOT VALID MAC ADDRESS'   
}

if($webAPI) {
    $result=Invoke-WebRequest "http://www.macvendorlookup.com/api/v2/$macAddressToVerify"
    $result=ConvertFrom-Json $result.Content   
} else {
    if(-not (Test-Path .\oui.txt)) {
        Start-BitsTransfer -Source 'http://standards-oui.ieee.org/oui.txt' -Destination 'oui.txt' -TransferType Download
    }

    $result=Select-String -path .\oui.txt -Pattern $macAddressToVerify -Context 0,4
}

if($result) {
    $result
} else {
    throw "Vendor not found for $macAddress"
}


eN.

 

 

Spread the love

Zostaw komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Time limit is exhausted. Please reload CAPTCHA.