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:

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:

Gerade bei:

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:


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:

Gespeichert werden zusätzlich:

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:

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:


Rotationssystem

Warum Rotation?

Würde immer derselbe Provider zuerst verwendet werden:

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:

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:

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:


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:

Verwendet werden bevorzugt:

Alternativ:


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:


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:

kann nachvollzogen werden:


Besonderheiten

IPv4 und IPv6

Das System akzeptiert beide Varianten automatisch.


Zeitbasierte Rotation

Provider und Connectivity-Checks werden nicht statisch verwendet.

Das verhindert:


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:

Besonders wertvoll wird das System durch:

💾 Download

Das Programm kann hier in immer der neuesten Version heruntergeladen werden:

IPlogger Script (via mariobeh.de)


Revision #3
Created 12 May 2026 21:46:57 by Admin
Updated 12 May 2026 22:01:21 by Admin