diff .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 diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/.ssh/athome	Wed Apr 24 16:15:40 2024 -0400
@@ -0,0 +1,31 @@
+#!/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