view .ssh/athome @ 265:df0b24d4fabd

Think I'm ready to check this all in now; shared dotfiles that can be "sent" through an SSH connection to be used and cleaned up when finished.
author Steve Huston <huston@srhuston.net>
date Wed, 24 Apr 2024 16:15:40 -0400
parents
children 33541d73d6d7
line wrap: on
line source

#!/usr/bin/env bash

# Check to see if we're at home - does our externally routable IP address
# match the one on my home network.  This should be fast, and needs to be
# portable so it works in multiple ways, but if everything else fails we'll
# return false which should still allow things to work.

# Logic swap for negating outputs
on=0
off=1
if [[ "$1" == "--not" ]] ; then
  shift
  on=1
  off=0
fi

# Start by getting our current IP, this is surprisingly easy thanks to Amazon
MYIP=`curl -s checkip.amazonaws.com`

# Now how to get the home IP.. let's loop through ways it's possible
HOMEDNS="b6800200.eero.online"

if which -s getent awk ; then
  HOMEIP=`getent ahostsv4 $HOMEDNS | awk '{print $1; exit}'`
elif which -s dig ; then
  HOMEIP=`dig +short $HOMEDNS`
else
  exit $off
fi

[[ $MYIP == $HOMEIP ]] && exit $on || exit $off