Jedi Tricks – Public IP per bash und Telegram

Am Wochenende war ich unterwegs und wollte kurz zuhause etwas nachschauen. Jedoch konnte ich mich nicht per VPN an meine FritzBox anmelden. Grund dafür ist die geändert Public IP Adresse. Diese ändert sich bei mir nicht sehr oft, aber meistens, wenn man sie braucht, ist sie eine andere als im Smartphone gespeichert.
Und so habe ich eine Möglichkeit gesucht, wie ich immer die Adresse parat habe. Und ja, ich kenne das ganze DynDNS gedöns und über MyFritzBox gibt es sicherlich auch eine Möglichkeit. Aber a) ist mir echt zu nervig zu konfigurieren und b) wird sicherlich bei beiden Diensten ein Account benötigt. Beides also nervig.
Also dachte ich mir, ich schreibe ein kleines Python Skript, dass mit die IP Adresse als Text irgendwo speichert, damit ich sie jederzeit erreichen kann. Doch die einfachste Methode die Public IP zu bekommen ist ein Bash Befehl:

dig +short myip.opendns.com @resolver1.opendns.com

Des Ergebnis in einer Variable/Textfile zu packen und dann mit Python noch einen Schritt durchzuführen, dass was mir auch zu komplex. Und dann kam mir die Idee, warum nicht einfach die Adresse an mein Telegram Chat, den ich auch für andere Überwachungen benutze, schicken. Telegram ist, was Bots betrifft, ein genialer Messenger. Denn eine Nachricht kann man auch mit einem einfachen curl Befehl absetzten. Und das wiederum ist perfekt für die Bash. Und so haben ich diese Fingerübung runtergehackt und lasse sie per Cron Job jede Nacht laufen.
Damit finde ich dann auch heraus wie oft sich meine IP ändert.


#!/bin/bash
GROUP_ID=
BOT_TOKEN=
# URL = "https://api.telegram.org/bot{}/".format(TOKEN)
myip="$(dig +short myip.opendns.com @resolver1.opendns.com)"
curl -s --data "text=$myip" --data "chat_id=$GROUP_ID" 'https://api.telegram.org/bot'$BOT_TOKEN'/sendMessage' > /dev/null

PS: Wie du die ChatId herausfinden und dir einen eigenen Bot Token erstellen kannst, werde ich demnächst erklären.

This entry was posted in .

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert