Posted to tcl by colin at Wed Aug 01 23:10:51 GMT 2012view raw
- # Terry Dawson's "very educated guess" algorithm:
- #
- # You can reasonably assume that the 'local' DNS server is (one of)
- # the DNS server(s) serving the local domain.
- #
- # So iff the local hostname is set correctly you could use:
- # gethostname(), identify the domain component,
- # and then undertake a DNS request for NS records for that domain.
- #
- # That should provide you with a list of usable 'local' DNS servers."
- # It won't help you find topologically local DNS proxies for example,
- # but it will help you find usable DNS servers.
- package require dns
- #package require udp
- proc doit {addr {server localhost}} {
- set token [::dns::resolve $addr]
- if {[::dns::wait $token] eq "ok"} {
- puts [::dns::result $token]
- } else {
- puts [::dns::error $token]
- }
- ::dns::cleanup $token
- }
- proc findDNS {} {
- set host [info hostname]
- }
- doit [lindex $argv 0]