diff options
| author | Deposite Pirate | 2026-02-13 22:43:24 +0100 |
|---|---|---|
| committer | Deposite Pirate | 2026-02-13 22:43:24 +0100 |
| commit | 5ae2e982d3a771c6d94d287c1856c5141681d0d7 (patch) | |
| tree | 8b4adf8026bfad841f4b98a1f41208d55d9c5b20 /conf.d/00netutil.fish | |
| parent | 6fe2100b06b3a3972a1317751a6d9d8825d54bb0 (diff) | |
More netutils stuff
- Add a function to validate IPv4 addresses
- Cosmetic changes to reverse_ipv4
modified: conf.d/00netutil.fish
Diffstat (limited to 'conf.d/00netutil.fish')
| -rw-r--r-- | conf.d/00netutil.fish | 34 |
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]" |
