Meet macvendors.com! I’ve used this website quite a bit in the past and recently saw that they have an API. This means I can query MAC address vendors using PowerShell instead of loading the site every time.
So I quickly threw together a small test to see if this would work using Invoke-WebRequest. You can see this below:
$mac_example = "3C-07-71-75-BC-32" Invoke-WebRequest -Uri "https://api.macvendors.com/$mac_example"
This returns the following information:
StatusCode : 200 StatusDescription : OK Content : Sony Corporation RawContent : HTTP/1.1 200 OK Connection: keep-alive x-request-id: lhgjrrs7mf0desm40sifji9reoehi08b Content-Length: 16 Cache-Control: max-age=0, private, must-revalidate Content-Type: text/plain; charset=utf-8... Forms : {} Headers : {[Connection, keep-alive], [x-request-id, lhgjrrs7mf0desm40sifji9reoehi08b], [Content-Length, 16], [Cache-Control, max-age=0, private, must-revalidate]...} Images : {} InputFields : {} Links : {} ParsedHtml : mshtml.HTMLDocumentClass RawContentLength : 16
This provides with a lot of useless information. All I really want is the content field which contains the manufacturer information. So what I’m going to do is wrap the Invoke-WebRequest in brackets and select the content field as shown below:
(Invoke-WebRequest -Uri "https://api.macvendors.com/$mac_example").content
Which simple returns “Sony Corporation”. Perfect. Enjoy!