Below is a script that will reach out, grab your public IP, and if it's different from the last entry, enter it into a log file. I use crontab to execute it at the top of every minute.
#!/bin/bash # This script records changes to your external IP to a log file with timestamp # Install: # crontab -e # * * * * * /Users/MYUSERNAME/WHEREVER/iplog.sh # And then change the iplogfileloc below to where you want the logfile to save. # You should have an iplog.txt with contents like this: # $ cat iplog.txt # Wed Nov 28 12:56:40 MST 2018 -- 177.243.11.21 # Wed Nov 28 13:00:07 MST 2018 -- 17.18.24.6 # Change the below location to what you want iplogfileloc="/Users/MYUSERORWHATEVERHERE/iplog.txt" myip=$(curl httpbin.org/ip 2> /dev/null| grep origin | awk '{print $2}' | tr -d '"') #create file if it doesnt exist [ -f ${iplogfileloc} ] || touch ${iplogfileloc} if ! cat ${iplogfileloc} | tail -1 | grep ${myip} > /dev/null ; then # if your IP has changed, add it to the file echo $(date) '--' ${myip} >> ${iplogfileloc} fi
Now you can change IPs via VPN or whatever and always be able to refer to it later. The only edge case is if you change IPs multiple times within one minute, but that should be rare and accounted for in sprays.