From 5ae2e982d3a771c6d94d287c1856c5141681d0d7 Mon Sep 17 00:00:00 2001 From: Deposite Pirate Date: Fri, 13 Feb 2026 22:43:24 +0100 Subject: More netutils stuff - Add a function to validate IPv4 addresses - Cosmetic changes to reverse_ipv4 modified: conf.d/00netutil.fish --- conf.d/00netutil.fish | 34 +++++++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) (limited to 'conf.d/00netutil.fish') 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]" -- cgit v1.3.1