Function: nslookup-host-ipv4

nslookup-host-ipv4 is an autoloaded and byte-compiled function defined in net-utils.el.gz.

Signature

(nslookup-host-ipv4 HOST &optional NAME-SERVER FORMAT)

Documentation

Return the IPv4 address for HOST (name or IP address).

Optional argument NAME-SERVER says which server to use for DNS resolution.

If FORMAT is string, returns the IP address as a string (default). If FORMAT is vector, returns a 4-integer vector of octets.

This command uses nslookup-program to look up DNS records.

Source Code

;; Defined in /usr/src/emacs/lisp/net/net-utils.el.gz
;;;###autoload
(defun nslookup-host-ipv4 (host &optional name-server format)
  "Return the IPv4 address for HOST (name or IP address).
Optional argument NAME-SERVER says which server to use for DNS
resolution.

If FORMAT is `string', returns the IP address as a
string (default).  If FORMAT is `vector', returns a 4-integer
vector of octets.

This command uses `nslookup-program' to look up DNS records."
  (let* ((args `(,nslookup-program "-type=A" ,host ,name-server))
         (output (shell-command-to-string
                  (string-join (cl-remove nil args) " ")))
         (ip (or (and (string-match
                       "Name:.*\nAddress: *\\(\\([0-9]\\{1,3\\}\\.?\\)\\{4\\}\\)"
                       output)
                      (match-string 1 output))
                 host)))
    (cond ((memq format '(string nil))
           ip)
          ((eq format 'vector)
           (apply #'vector (mapcar #'string-to-number (split-string ip "\\."))))
          (t (error "Invalid format: %s" format)))))