From: root <root@gitea.devuan.dev>
Date: Wed, 22 Sep 2021 13:26:40 +0000 (+0000)
Subject: show ip bits
X-Git-Url: https://git.rrq.au/?a=commitdiff_plain;h=73b88be036da8a259d6162bb86255e539daac643;p=rrq%2Fnewlisp-ftw.git

show ip bits
---

diff --git a/socket-sniff.lsp b/socket-sniff.lsp
index 980abe0..f056d2e 100755
--- a/socket-sniff.lsp
+++ b/socket-sniff.lsp
@@ -46,6 +46,10 @@
 
 (context MAIN)
 
+(define (ipbits IP)
+  (join (map (fn (X) (-8 (string "0000000" (bits X))))
+	     (map int (parse IP ".")))))
+
 (setf IFACE (main-args -1) FD (LIBC6:raw-socket) )
 
 (when (< FD)
@@ -71,17 +75,17 @@
 	  (let ((IP (LN 0)) (N (LN 1)))
 	    (TOT IP (+ (or (TOT IP) 0) N))
 	    (TOT IP (max 0 (- (or (TOT IP) 0) 10000)))
-	    (push (list IP (TOT IP) (TBL IP)) OUT -1)
+	    (push (list (ipbits IP) IP (TOT IP) (TBL IP)) OUT -1)
 	    (TBL IP 0)))
 	(sort OUT (fn (x y)
-		      (and (> (x 1))
-			   (if (> (x 2)) (or (= (y 2)) (> (x 1) (y 1)))
-			     (= (y 1)) true
-			     (= (y 2)) (> (x 1) (y 1))))))
+		      (and (> (x -2))
+			   (if (> (x -1)) (or (= (y -1)) (> (x -2) (y -2)))
+			     (= (y -2)) true
+			     (= (y -1)) (> (x -2) (y -2))))))
 	(dotimes (i 30)
 	  (! "tput el")
 	  (when (setf x (pop OUT))
-	    (unless (> (x 1)) (setf x nil)))
+	    (unless (> (x -2)) (setf x nil)))
 	  (println (or x "")))))))
 
 (! "clear")