Skip to content

Instantly share code, notes, and snippets.

@brianmed
Last active August 15, 2021 05:33
Show Gist options
  • Save brianmed/a0e55b23762c011c3d6c4a3ba3bc0e6b to your computer and use it in GitHub Desktop.
Save brianmed/a0e55b23762c011c3d6c4a3ba3bc0e6b to your computer and use it in GitHub Desktop.
Hopefully Computes if Two IP Addresses are "In Range"
#! /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