Jump to content

DNS query: Difference between revisions

Added Wren
m (→‎{{header|Perl}}: display output properly)
(Added Wren)
Line 1,525:
URL: www.kame.net
IP Version 6: 2001:200:dff:fff1:216:3eff:feb1:44d7
</pre>
 
=={{header|Wren}}==
Wren CLI doesn't currently expose a way to make a DNS query.
 
However, if Wren is embedded in (say) a suitable Go program, then we can ask the latter to do it for us.
<lang ecmascript>/* dns_query.wren */
 
class Net {
foreign static lookupHost(host)
}
 
var host = "orange.kame.net"
var addrs = Net.lookupHost(host).split(", ")
System.print(addrs.join("\n"))</lang>
which we embed in the following Go program and run it:
{{libheader|WrenGo}}
<lang go>/* go run dns_query.go */
 
package main
 
import(
wren "github.com/crazyinfin8/WrenGo"
"net"
"strings"
)
 
type any = interface{}
 
func lookupHost(vm *wren.VM, parameters []any) (any, error) {
host := parameters[1].(string)
addrs, err := net.LookupHost(host)
if err != nil {
return nil, nil
}
return strings.Join(addrs, ", "), nil
}
 
func main() {
vm := wren.NewVM()
fileName := "dns_query.wren"
methodMap := wren.MethodMap{"static lookupHost(_)": lookupHost}
classMap := wren.ClassMap{"Net": wren.NewClass(nil, nil, methodMap)}
module := wren.NewModule(classMap)
vm.SetModule(fileName, module)
vm.InterpretFile(fileName)
vm.Free()
}</lang>
 
{{out}}
<pre>
2001:200:dff:fff1:216:3eff:feb1:44d7
203.178.141.194
</pre>
 
9,483

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.