Maybe it’s useful for somebody.
Checks ip and sends to your email., if it has changed.
Save as ipcheck.sh
and put on /home/USER/
To check every hour, execute crontab -e and add this to the end:
0 * * * * sh ipcheck.sh
Here it goes:
#!/bin/sh
#########################
## uncomment and edit as needed
#########################
#mail_to="email@sapo.pt"
#mail_from="email@sapo.pt"
#user="email@sapo.pt"
#pass="password123"
#host_params="--host=smtp.sapo.pt --port=587 --tls=on --tls-starttls=on --auth=on"
#########################
## do not edit lines bellow
#########################
ip_old=""
ip_new=""
if [ -f ip.txt ]; then ip_old="$(cat ip.txt)"; fi
ip_new="$(curl --connect-timeout 10 --max-time 10 --retry 3 --retry-delay 0 -s icanhazip.com)"
if [ "$ip_new" != "" ] && [ "$ip_new" != "$ip_old" ]
then
echo $ip_new > ip.txt
printf "To:$mail_to\nSubject: IP\n\nOld ip = $ip_old\nNew ip = $ip_new" | msmtp --timeout=10 -t --from=$mail_from --user=$user --passwordeval="echo '$pass'" $host_params
fi
cool, I’ve been using curl -s ifconfig.me
after dig +short myip.opendns.com
stopped working
Pretty useful, definitely going to save this.
My home IP almost never changes, so I’d hate to pay for a static IP.
@Fubarberry @murkom noip.com has a free service I’ve used a bunch. Just run an app at home and select a domain. Some routers support the service too.
If you really need to access your home IP often, a domain is definitely worth it. Cloudflare sells them cheap, then just run something like cf-ddns that will update the DNS record automatically every time you get a new IP.
I would recommend always testing shell scripts with https://github.com/koalaman/shellcheck. Often there is room for improvement that you don’t think of yourself.
Thx, this is interesting. Im using duckdns atm, but would be nice to replace it with some local scrip if possible