X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/zone/blobdiff_plain/2f1d381d7cf464f2ce50d6754a538d9e0fc89876..51a6847e534bc908f97f068c5ed82ed11c85ce15:/net.lisp?ds=sidebyside diff --git a/net.lisp b/net.lisp index 35e4340..64c796d 100644 --- a/net.lisp +++ b/net.lisp @@ -256,19 +256,23 @@ (defun ipnet-changeable-bytes (mask) ;;;-------------------------------------------------------------------------- ;;; Name resolution. -#+cmu (defun resolve-hostname (name) "Resolve a hostname to an IP address using the DNS, or return nil." - (let ((he (ext:lookup-host-entry name))) - (and he - (ext:host-entry-addr he)))) + #+cmu (let ((he (ext:lookup-host-entry name))) + (and he (ext:host-entry-addr he))) + #+clisp (let ((he (ext:resolve-host-ipaddr name))) + (and he (string-ipaddr (car (ext:hostent-addr-list he))))) + #+ecl (nth-value 2 (ext:lookup-host-entry name)) + #-(or cmu clisp ecl) nil) -#+cmu (defun canonify-hostname (name) "Resolve a hostname to canonical form using the DNS, or return nil." - (let ((he (ext:lookup-host-entry name))) - (and he - (ext:host-entry-name he)))) + #+cmu (let ((he (ext:lookup-host-entry name))) + (and he (ext:host-entry-name he))) + #+clisp (let ((he (ext:resolve-host-ipaddr name))) + (and he (ext:hostent-name he))) + #+ecl (nth-value 0 (ext:lookup-host-entry name)) + #-(or cmu clisp ecl) name) ;;;-------------------------------------------------------------------------- ;;; Host names and specifiers.