;;; network-utils.el --- utils for network stuff -*- lexical-binding: t -*- ;; Author: Franck Cuny ;;; Commentary: ;; commentary ;;; Code: (defun int-to-ipv4 (integer) "Convert an INTEGER to an IPv4 address string." (format "%d.%d.%d.%d" (logand (ash integer -24) 255) (logand (ash integer -16) 255) (logand (ash integer -8) 255) (logand integer 255))) (defun ipv4-to-int (ipv4) "Convert an IPV4 address string to an INTEGER." (let ((octets (mapcar #'string-to-number (split-string ipv4 "\\.")))) (if (= (length octets) 4) (+ (ash (nth 0 octets) 24) (ash (nth 1 octets) 16) (ash (nth 2 octets) 8) (nth 3 octets)) (error "Invalid IPv4 address format")))) (provide 'network-utils) ;;; network-utils.el ends here