Maybe it’s useful for somebody.
Checks ip and sends to your email.
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
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.
Nice one. Did not know about it.
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.
cool, I’ve been using
curl -s ifconfig.me
afterdig +short myip.opendns.com
stopped workingPretty 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.
Thanks!
I am using a python script that push in a private git repository (so I even have history). I am using
dig +short myip.opendns.com .opendns.com
command to check ip.Thx, this is interesting. Im using duckdns atm, but would be nice to replace it with some local scrip if possible
I also use duckdns.
But as i like doing little scripts and wanted to try this, i remembered to share here.