Posted to tcl by colin at Wed Aug 01 23:10:51 GMT 2012view pretty
# 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]