Põhimõtteliselt olen leidnud kaks erinevat läehenemist:
1. Mõne teenusepakkuja, näiteks https://www.noip.com/ , kaasabil.
Minu seadmes jookseb teenusepakkuja service ja nende serveris seotakse minu muutuv IP ja domeen
(näiteks käesolev kodukas on registreeritud pupujuku.ddns.net domeenina).
2. Sõltumatu.
Minu seadmes (Raspberry) jooksutatakse perioodiliselt progr. (minul python) mis kontrollib välist IP -d.
Kui IP muutub, siis saadetakse teavitus (näiteks Telegram vahendusel) admin-le.
Uue IP teadmine võimaldab taas ligipääsu välisvõrgust, turvalisuse huvides on VPN ja SSH mõistlikud valikud.
käivita fail ip.py kasutades crontab
ip.txt failis hoitakse viimase IP aadressi väärtust
Kõik 3 faili (ip ; ip.py ; ip.txt) on kataloogis /home/.../ip
failis ip.py muuda bot ja chat_id vastavaks oma telegram seadistusele
=============================
#file: ip.py
------------
#!/usr/bin/python
# saada intervalliga kui on muutunud
import sys
import time
import subprocess
import telepot
ipaddr = '/home/.../ip/ip'
bot = telepot.Bot('xxxxxxx:yyyyyyyyyyyyyyyyyyyyyyy')
chat_id = 'zzzzzzzzzz'
fn = '/home/.../ip/ip.txt'
out = subprocess.check_output([ipaddr])
ip = dict([line.split('=') for line in out.decode('ascii').strip().split('\n')])
file = open(fn,"r")
if ip['Public'] != file.read():
reply = 'http://%s/' % (ip['Public'])
bot.sendMessage(chat_id, reply)
file.close()
file = open(fn,"w")
file.write(ip['Public'])
file.close()
sys.exit()
===============================
# file: ip
-----------
#!/bin/bash
#out=$(upnpc -l)
internalip=$(echo "$out" | grep "Local LAN ip address" | cut -d: -f2 | sed 's/^ *//')
externalip=$(echo "$out" | grep "ExternalIPAddress" | cut -d= -f2 | sed 's/^ *//')
publicip=$(curl 'https://api.ipify.org' --silent)
echo "Internal=$internalip"
echo "External=$externalip"
echo "Public=$publicip"
-------------------------------