added dns-inverse-query

This commit is contained in:
cresh 2002-04-23 21:42:41 +00:00
parent 1689c545c8
commit 5c424ac160
2 changed files with 17 additions and 1 deletions

17
dns.scm
View File

@ -740,7 +740,22 @@
(display "sorry, no answers received\n")) (display "sorry, no answers received\n"))
dns-msg)) dns-msg))
(define (dns-inverse-lookup ip)
(let* ((ip-string (ip-string->in-addr ip))
(question (if ip-string ; if name is a ip-addr, the query is a in-addr.arpa address
(make-octet-query-message (random 256) ip-string 'ptr 'in)
(error "dns-inverse-lookup: no valid ip")))
(use-cache? #t)
(nameserver (dns-find-nameserver))
(check-answer (lambda (dns-msg) (if *debug* (display "check-answer\n"))
(let* ((reply (dns-message:reply dns-msg))
(answers (message:answers reply)))
(not (null? answers)))))
(dns-msg (dns-get-information question use-cache? nameserver check-answer))
(answers (message:answers (dns-message:reply dns-msg))))
(if (not (null? answers))
(rr-data-ptr:name (rr:data (car answers)))
#f)))

View File

@ -735,6 +735,7 @@
(define-interface dns-interface (define-interface dns-interface
(export dns-clear-cache (export dns-clear-cache
dns-lookup dns-lookup
dns-inverse-lookup
show-dns-message show-dns-message
dns-find-nameserver)) dns-find-nameserver))