IPlogger 🐧 mit MySQL/MariaDB-UnterstĂŒtzung (iplogger-db.sh) IPlogger, Debian (+Derivate) Wiki-Stand: 12.05.2026 Script-Stand: 12.05.2026 Download IPLogger DB – IP- und VerfĂŒgbarkeitsĂŒberwachung Überblick Der iplogger-db.sh ist ein datenbankgestĂŒtzter IP-Logger zur dauerhaften Überwachung der eigenen Internetverbindung und der öffentlichen WAN-IP-Adresse. Das Script wurde dafĂŒr entwickelt, langfristig und nachvollziehbar festzuhalten: welche öffentliche IP-Adresse zu welchem Zeitpunkt aktiv war ob eine Internetverbindung vorhanden war ob lediglich die IP-Ermittlung fehlgeschlagen ist welche PrĂŒfdienste funktioniert oder versagt haben wie lange einzelne IPs aktiv waren wann Provider oder Verbindungen ausgefallen sind Der Fokus liegt nicht auf einer simplen „Wie ist meine IP“-Abfrage, sondern auf einer historisch nachvollziehbaren Langzeitaufzeichnung mit Auswertung und ZeitrĂ€umen. Das System arbeitet vollstĂ€ndig datenbankbasiert und speichert jede einzelne Messung dauerhaft ab. Ziel des Systems Der Logger beantwortet unter anderem folgende Fragen: Welche öffentliche IP war am 12.03.2024 um 14:00 Uhr aktiv? Wie lange blieb eine bestimmte IP bestehen? Wann erfolgte ein DSL-/WAN-Reconnect? War die Leitung tatsĂ€chlich offline oder nur ein PrĂŒfdienst gestört? Welche Provider lieferten fehlerhafte Antworten? Welche DNS-/Connectivity-Ziele waren erreichbar? Wie oft kam es zu Unterbrechungen? Wie stabil arbeitet die Internetanbindung? Gerade bei: DSL-Zwangstrennungen CGNAT-/Providerwechseln VPN-/Tunnelproblemen Routingfehlern sporadischen AusfĂ€llen Providerstörungen liefert die Historie eine klare technische Nachvollziehbarkeit. Architektur Das System besteht aus mehreren Komponenten: Komponente Aufgabe providers Öffentliche IP-Abfragedienste connectivity_checks PrĂŒft, ob Internet grundsĂ€tzlich erreichbar ist state Speichert RotationszustĂ€nde iplog Historische Hauptdatenbank summary_* Auswertung und Zusammenfassung PDF-/CSV-Export Archivierung und Dokumentation Grundlogik Der Ablauf einer Messung sieht vereinfacht so aus: 1. Connectivity prĂŒfen 2. Wenn Internet vorhanden: 3. Öffentliche IP ermitteln 4. Ergebnis speichern 5. Statistiken aktualisieren Wichtig dabei: Das Script unterscheidet sauber zwischen: Zustand Bedeutung OFFLINE Keine Internetverbindung CHECK_FAILED Internet vorhanden, aber IP nicht ermittelbar OK IP erfolgreich ermittelt INVALID_RESPONSE Provider lieferte ungĂŒltige Antwort NO_RUN Reservierter Status Dadurch wird verhindert, dass ein einfacher Fehler eines einzelnen IP-Dienstes fĂ€lschlich als Internetausfall interpretiert wird. Initialisierung Einstiegspunkt: init ./iplogger-db.sh init Dieser Befehl erstellt die komplette Datenbankstruktur. Dabei werden automatisch angelegt: Tabellen Standardprovider Connectivity-Ziele Rotationsstatus Datenbanktabellen Es muss vorab ein Benutzer und eine Datenbank erstellt sein. Die init-Datenbankinitialisierung erstellt dann die Tabellen. providers EnthĂ€lt alle IP-Ermittlungsdienste. StandardmĂ€ĂŸig: icanhazip.com ifconfig.me api.ipify.org checkip.amazonaws.com Gespeichert werden zusĂ€tzlich: ErfolgszĂ€hler FehlerzĂ€hler letzter Erfolg letzter Fehler Timeoutwerte Beispiel: Name URL icanhazip.com https://icanhazip.com api.ipify.org https://api.ipify.org connectivity_checks PrĂŒft die generelle InternetverfĂŒgbarkeit. StandardmĂ€ĂŸig: Google DNS ( 8.8.8.8 ) Quad9 ( 9.9.9.9 ) Cloudflare ( 1.1.1.1 ) Die PrĂŒfung erfolgt per Ping. state Speichert interne Rotationsinformationen. Dadurch wird nicht immer derselbe Provider zuerst verwendet. Beispiele: Name Wert next_provider_index 2 next_connectivity_index 1 iplog Die zentrale Historientabelle. Hier wird jede Messung dauerhaft gespeichert. Gespeichert werden unter anderem: Messzeitpunkt öffentliche IP Status verwendeter Provider Anzahl Versuche Fehlermeldungen Rohantworten Connectivity-Status Rotationssystem Warum Rotation? WĂŒrde immer derselbe Provider zuerst verwendet werden: wĂ€re dieser stĂ€rker belastet Fehler wĂŒrden schwerer auffallen andere Provider wĂŒrden kaum genutzt Deshalb arbeitet das System rotierend. Beispiel Durchlauf 1 1. icanhazip.com 2. ifconfig.me 3. ipify Durchlauf 2 1. ifconfig.me 2. ipify 3. icanhazip.com Durchlauf 3 1. ipify 2. icanhazip.com 3. ifconfig.me Dadurch verteilt sich die Last gleichmĂ€ĂŸig. Connectivity-PrĂŒfung Einstiegspunkt: check oder run ./iplogger-db.sh check oder: ./iplogger-db.sh run Beides startet dieselbe Messlogik. Ablauf der Connectivity-PrĂŒfung Vor der eigentlichen IP-Ermittlung wird geprĂŒft: besteht ĂŒberhaupt Internet? ist Routing vorhanden? funktionieren externe Ziele? Dazu werden mehrere bekannte Ziele angepingt. Erst wenn mindestens eines erreichbar ist, wird die IP-Abfrage gestartet. Provider-PrĂŒfung Nach erfolgreicher Connectivity-PrĂŒfung: curl -> Provider -> Antwort validieren Dabei wird geprĂŒft: ist die Antwort leer? ist die Antwort eine gĂŒltige IPv4? ist die Antwort eine gĂŒltige IPv6? Nur dann gilt der Durchlauf als erfolgreich. BeispielablĂ€ufe Erfolgreicher Lauf Connectivity OK Provider erreichbar IP gĂŒltig → Status OK Gespeichert wird beispielsweise: 2026-05-12 22:00:00 IP: 93.192.117.44 Status: OK Internet vorhanden, aber Provider kaputt Connectivity OK Provider liefert MĂŒll → CHECK_FAILED Beispiel: Provider https://api.example liefert: ERROR 500 Das Internet funktioniert trotzdem. Komplett offline Google DNS nicht erreichbar Cloudflare nicht erreichbar Quad9 nicht erreichbar → OFFLINE Summary-System Das eigentliche KernstĂŒck ist die Verlaufsanalyse. Einzelne Messungen werden zu ZeitrĂ€umen zusammengefasst. Einstiegspunkt: summary Tabellenansicht ./iplogger-db.sh summary tabelle Beispiel: BEGIN_AT END_AT IP SAMPLES OFFLINE FAILS 2026-05-01 10:00 2026-05-03 02:00 93.192.117.44 91 0 0 Textansicht ./iplogger-db.sh summary text Beispiel: 01.05.2026 10:00 Uhr - 03.05.2026 02:00 Uhr: IP 93.192.117.44 (91x online) Wie die Periodenerkennung funktioniert Die Funktion summary_rows() analysiert die komplette Historie. Sobald sich die IP Ă€ndert: alte Periode schließen neue Periode beginnen ZusĂ€tzlich werden innerhalb der Periode gezĂ€hlt: Offline-Ereignisse Fehler erfolgreiche Samples Detailmodus Einstiegspunkt ./iplogger-db.sh summary export pdf details Der Detailmodus erzeugt eine vollstĂ€ndige Zeitauflistung aller erfolgreichen Messungen innerhalb einer Periode. Beispiel 16.02.2020 05:00 Uhr - 16.02.2020 11:00 Uhr: IP 93.192.117.44 (24x online) - 16.02.2020 05:00 06:00 07:00 08:00 - 16.02.2020 09:00 10:00 11:00 Oder bei Tageswechsel: 07.02.2021 04:00 05:00 06:00 08.02.2021 00:00 01:00 02:00 Dadurch werden lange ZeitrĂ€ume kompakt lesbar dargestellt. PDF-Export Einstiegspunkt ./iplogger-db.sh summary export pdf oder: ./iplogger-db.sh summary export pdf details Der Export erzeugt automatisch: TXT-Zwischendatei PDF-Datei Überschrift Datum Seitenzahlen Verwendet werden bevorzugt: enscript ps2pdf Alternativ: pandoc CSV-Export Einstiegspunkt ./iplogger-db.sh summary export csv Exportiert die zusammengefassten Perioden in maschinenlesbarer Form. Beispiel: begin_at;end_at;ip;samples;offline;fails 2026-05-01 10:00;2026-05-03 02:00;93.192.117.44;91;0;0 Historischer CSV-Import Einstiegspunkt ./iplogger-db.sh import ipdb.csv ";" Der CSV-Import dient primĂ€r zur Übernahme historischer Daten aus der ersten Generation des IPLoggers. Dabei werden Ă€ltere Aufzeichnungen in die neue Datenbankstruktur ĂŒbernommen. UnterstĂŒtzt werden: erfolgreiche IPs Offline-EintrĂ€ge FehlerzustĂ€nde Typische Einsatzszenarien WAN-Reconnects nachvollziehen IP 1: 01:00 - 12:00 IP 2: 12:05 - aktuell → DSL-Zwangstrennung klar sichtbar. Providerprobleme erkennen 15x CHECK_FAILED aber keine OFFLINE-ZustĂ€nde → Internet vorhanden, aber IP-Dienst gestört. VPN-/Tunnelprobleme analysieren Wenn: Connectivity vorhanden aber bestimmte Ziele nicht erreichbar kann nachvollzogen werden: wann Routingprobleme begannen wie lange sie bestanden ob WAN-Wechsel beteiligt waren Besonderheiten IPv4 und IPv6 Das System akzeptiert beide Varianten automatisch. Zeitbasierte Rotation Provider und Connectivity-Checks werden nicht statisch verwendet. Das verhindert: Single-Point-AbhĂ€ngigkeiten einseitige Last verfĂ€lschte Statistiken Dauerhafte Historie Die Datenbank arbeitet append-only. Neue EintrĂ€ge werden ausschließlich ergĂ€nzt. Dadurch bleibt die komplette Historie nachvollziehbar erhalten. Beispiel fĂŒr Cronjob 0 * * * * /srv/scripte/iplogger-db.sh check >/dev/null 2>&1 Dadurch erfolgt stĂŒndlich eine neue Messung. Fazit iplogger-db.sh ist kein einfacher „Wie ist meine IP“-Checker, sondern ein vollstĂ€ndiges Langzeit-Überwachungs- und Auswertungssystem fĂŒr: öffentliche WAN-IPs InternetverfĂŒgbarkeit ProviderstabilitĂ€t Fehleranalysen historische ZeitrĂ€ume dokumentierbare VerbindungsverlĂ€ufe Besonders wertvoll wird das System durch: die periodische Zusammenfassung die saubere Statusunterscheidung die rotierenden PrĂŒfmechanismen die nachvollziehbare Langzeithistorie die Exportfunktionen fĂŒr Archivierung und Dokumentation đŸ’Ÿ Download Das Programm kann hier in immer der neuesten Version heruntergeladen werden: IPlogger Script (via mariobeh.de)