How to resolve the algorithm MAC vendor lookup step by step in the Nu programming language

Published on 12 May 2024 09:40 PM
#Nu

How to resolve the algorithm MAC vendor lookup step by step in the Nu programming language

Table of Contents

Problem Statement

Every connected device around the world comes with a unique Media Access Control address, or a   MAC address. A common task a network administrator may come across is being able to identify a network device's manufacturer when given only a MAC address.

Interface with one (or numerous) APIs that exist on the internet and retrieve the device manufacturer based on a supplied MAC address. A MAC address that does not return a valid result should return the String "N/A".   An error related to the network connectivity or the API should return a null result. Many implementations on this page use http://api.macvendors.com/ which, as of 19th September 2021, is throttling requests. After only 2 calls, the following response is returned for all subsequent requests. If you are planning to use the same provider or going to run the examples on this page, consider building in a delay between two calls. {"errors":{"detail":"Too Many Requests","message":"Please slow down your requests or upgrade your plan at https://macvendors.com"}}

Let's start with the solution:

Step by Step solution about How to resolve the algorithm MAC vendor lookup step by step in the Nu programming language

Source code in the nu programming language

let mactable = http get "http://standards-oui.ieee.org/oui/oui.csv" | from csv --no-infer

def get-mac-org [] {
	let assignment = $in | str upcase | str replace --all --regex "[^A-Z0-9]" "" | str substring 0..6
	$mactable | where Assignment == $assignment | try {first | get "Organization Name"} catch {"N/A"}
}

# Test cases from the Ada entry
let macs = [
	# Should succeed
	"88:53:2E:67:07:BE"
	"D4:F4:6F:C9:EF:8D"
	"FC:FB:FB:01:FA:21"
	"4c:72:b9:56:fe:bc"
	"00-14-22-01-23-45"
	# Should fail
	"23-45-67"
	"foobar"
]

$macs | each {{MAC: $in, Vendor: ($in | get-mac-org)}}

  

You may also check:How to resolve the algorithm Metallic ratios step by step in the Go programming language
You may also check:How to resolve the algorithm Metaprogramming step by step in the C programming language
You may also check:How to resolve the algorithm Non-decimal radices/Input step by step in the Ada programming language
You may also check:How to resolve the algorithm Rock-paper-scissors step by step in the Run BASIC programming language
You may also check:How to resolve the algorithm Web scraping step by step in the Scala programming language