;;; -*- Mode:LISP; Package:SYSTEM-INTERNALS; Base:10 -*-

;;; functions one might use to pick an address for a machine.


(defun addresses-of-network (kind)
  (mapcar (or (get kind 'address-format)
	      #'identity)
	  (sort (remq nil (mapcar #'(lambda (x)
					  (send (cadr x) :network-address kind))
				      si:host-alist)) #'<)))


(defun (:chaos address-format) (x)
  (format nil "~O" x))

(defun (:internet address-format) (x)
  (format nil "~D.~D.~D.~D"
	  (ldb (byte 8 24) x)
	  (ldb (byte 8 16) x)
	  (ldb (byte 8 8) x)
	  (ldb (byte 8 0) x)))

