18
submitted 1 year ago* (last edited 1 year ago) by murkom@lemmy.world to c/linux@lemmy.ml

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
top 11 comments
sorted by: hot top controversial new old
[-] Fryboyter@discuss.tchncs.de 5 points 1 year ago

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.

[-] murkom@lemmy.world 1 points 1 year ago

Nice one. Did not know about it.

[-] MoriGM@feddit.de 1 points 1 year ago

If you test it let us now how it's worked with the script.

[-] manned_meatball@lemmy.ml 3 points 1 year ago

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

[-] bdonvr@thelemmy.club 3 points 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.

[-] Fubarberry@lemmy.fmhy.ml 2 points 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.

@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.

[-] Fubarberry@lemmy.fmhy.ml 2 points 1 year ago
[-] Kajika@lemmy.ml 2 points 1 year ago* (last edited 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.

[-] rambos@lemmy.world 0 points 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.world 1 points 1 year ago

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

load more comments
view more: next ›
this post was submitted on 28 Jun 2023
18 points (100.0% liked)

Linux

47933 readers
1074 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS