MAC vendor lookup: Difference between revisions

Added Wren
m (added whitespace for the TOC.)
(Added Wren)
Line 974:
<pre>00-14-22-01-23-45 Dell Inc.
88:53:2E:67:07:BE Intel Corporate</pre>
 
=={{header|Wren}}==
Wren CLI doesn't currently expose a way to look up a MAC address.
 
However, if Wren is embedded in (say) a suitable Go program, then we can ask the latter to do it for us.
<lang ecmascript>/* mac_vendor_lookup.wren */
class MAC {
foreign static lookup(address)
}
 
System.print(MAC.lookup("FC:FB:FB:01:FA:21"))</lang>
 
which we embed in the following Go program and run it.
{{libheader|WrenGo}}
<lang go>/* mac_vendor_lookup.go */
package main
 
import (
wren "github.com/crazyinfin8/WrenGo"
"io/ioutil"
"net/http"
)
 
type any = interface{}
 
func macLookup(vm *wren.VM, parameters []any) (any, error) {
mac := parameters[1].(string)
resp, _ := http.Get("http://api.macvendors.com/" + mac)
body, _ := ioutil.ReadAll(resp.Body)
return string(body), nil
}
 
func main() {
vm := wren.NewVM()
fileName := "mac_vendor_lookup.wren"
methodMap := wren.MethodMap{"static lookup(_)": macLookup}
classMap := wren.ClassMap{"MAC": wren.NewClass(nil, nil, methodMap)}
module := wren.NewModule(classMap)
vm.SetModule(fileName, module)
vm.InterpretFile(fileName)
vm.Free()
}</lang>
 
{{out}}
<pre>
Cisco Systems, Inc
</pre>
 
=={{header|zkl}}==
9,476

edits