blob: 56251198c0f9c4b1b46ca8b10370897bfee353f8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
#!/usr/bin/env zsh
typeset -ga PRIVATE_RANGES=(
00001010 # 10.0.0.0/8
101011000001 # 172.16.0.0/12
1100000010101000 # 192.168.0.0/16
)
test_range() {
typeset net addr=$(printf '%.2x' ${(s:.:)1})
for net in $PRIVATE_RANGES; do
((16#$addr >> (32 - $#net) == 2#$net)) && return 0
done
}
report() {
typeset result='private' addr=$1 state=$2
((state)) && result='not private'
printf "%s is %s\n" $addr $result
exit $state
}
main() {
test_range $1 && report $1 0
report $1 1
}
main $1
|