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
  • manned_meatball
    link
    fedilink
    English
    arrow-up
    3
    ·
    1 year ago

    cool, I’ve been using curl -s ifconfig.me after dig +short myip.opendns.com stopped working

  • bdonvr@thelemmy.club
    link
    fedilink
    English
    arrow-up
    3
    ·
    1 year ago

    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.

    • manned_meatball
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      1 year ago

      I don’t know OP’s need of knowing the machine’s IP address so often, but a better approach to avoid the security issues of opening ports to the internet while using cloudflare is cloudflare tunnel.

  • Kajika
    cake
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    1 year ago

    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 @resolver1.opendns.com command to check ip.

  • Fubarberry@lemmy.fmhy.ml
    link
    fedilink
    English
    arrow-up
    2
    ·
    1 year ago

    Pretty useful, definitely going to save this.

    My home IP almost never changes, so I’d hate to pay for a static IP.

  • rambos@lemmy.world
    link
    fedilink
    English
    arrow-up
    0
    ·
    1 year ago

    Thx, this is interesting. Im using duckdns atm, but would be nice to replace it with some local scrip if possible

    • murkom@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 year ago

      I also use duckdns.
      But as i like doing little scripts and wanted to try this, i remembered to share here.