aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDeposite Pirate2026-02-13 22:43:24 +0100
committerDeposite Pirate2026-02-13 22:43:24 +0100
commit5ae2e982d3a771c6d94d287c1856c5141681d0d7 (patch)
tree8b4adf8026bfad841f4b98a1f41208d55d9c5b20
parent6fe2100b06b3a3972a1317751a6d9d8825d54bb0 (diff)
More netutils stuff
- Add a function to validate IPv4 addresses - Cosmetic changes to reverse_ipv4 modified: conf.d/00netutil.fish
-rw-r--r--conf.d/00netutil.fish34
1 files changed, 31 insertions, 3 deletions
diff --git a/conf.d/00netutil.fish b/conf.d/00netutil.fish
index 9f7c15f..3712314 100644
--- a/conf.d/00netutil.fish
+++ b/conf.d/00netutil.fish
@@ -1,11 +1,39 @@
+function valid_ipv4 --description "Validate IPv4 address" -a ipv4addr
+
+if test -z "$ipv4addr"
+ return 1
+end
+
+if not string match -rq '^([0-9]{1,3}\.){3}[0-9]{1,3}$' -- $ipv4addr
+ return 1
+end
+
+for quadpart in (string split . -- $ipv4addr)
+ if not string match -rq '^(0|[1-9][0-9]{0,2})$' -- $quadpart
+ return 1
+ end
+
+ if test $quadpart -gt 255; or test $quadpart -lt 0
+ return 1
+ end
+end
+
+return 0
+
+end
+
function reverse_ipv4 --description "Print reverse IPv4 address" -a ipv4addr
-set -l i '4'
+if test -z "$ipv4addr"
+ return
+end
+
+set -l index '4'
set -l rquad '' '' '' ''
for item in (string split --right --max 3 . $ipv4addr)
- set rquad[$i] $item
- set i (math $i-1)
+ set rquad[$index] $item
+ set index (math $index-1)
end
echo "$rquad[1].$rquad[2].$rquad[3].$rquad[4]"