Last active
August 15, 2021 05:33
-
-
Save brianmed/a0e55b23762c011c3d6c4a3ba3bc0e6b to your computer and use it in GitHub Desktop.
Hopefully Computes if Two IP Addresses are "In Range"
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#! /bin/bash | |
IFS=. read LeftOctetA LeftOctetB LeftOctetC LeftOctetD <<EOF | |
192.168.4.5 | |
EOF | |
IFS=. read RightOctetA RightOctetB RightOctetC RightOctetD <<EOF | |
192.168.4.8 | |
EOF | |
IFS=. read NeedleOctetA NeedleOctetB NeedleOctetC NeedleOctetD <<EOF | |
192.168.4.7 | |
EOF | |
LeftAsNumber=$(printf '%d\n' "$((LeftOctetA * 256 ** 3 + LeftOctetB * 256 ** 2 + LeftOctetC * 256 + LeftOctetD))") | |
RightAsNumber=$(printf '%d\n' "$((RightOctetA * 256 ** 3 + RightOctetB * 256 ** 2 + RightOctetC * 256 + RightOctetD))") | |
NeedleAsNumber=$(printf '%d\n' "$((NeedleOctetA * 256 ** 3 + NeedleOctetB * 256 ** 2 + NeedleOctetC * 256 + NeedleOctetD))") | |
if [[ NeedleAsNumber -lt RightAsNumber && NeedleAsNumber -gt LeftAsNumber ]]; then | |
echo "In Range" | |
fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment