IP Logger (Debian / 04.01.2024)
Dieser IP Logger loggt die eigene IP-Adresse in eine CSV-Datei. Dies hat den Grund, dass man Vorwürfe jeder Art durch Vorlage der zu der Zeit genutzten IP-Adresse vorweisen könnte.
Nützlich in Verbindung mit einem Cronjob.
Das Script holt via "icanhazip.com" die aktuelle IP-Adresse und speichert sie in die CSV-Datei. Wenn via Cronjob das Script ausgeführt wird, empfehle ich den Intervall auf stündlich zu setzen. Eine Zeit von-bis einzubauen halte ich für nicht sinnvoll, da das Internet zu dieser Zeit auch ausfallen könnte. Daher halte ich es für nicht sinnvoll, die IP-Adresse zu speichern und erst bei Änderung erneut zu schreiben.
🧾 Was macht das Script?
📁 Allgemeine Initialisierung:
-
Bestimme den aktuellen Benutzer (
whoami
) -
Setze
$data
auf:/home/<user>/script-data/<scriptname>
(z. B./home/pi/script-data/iplogger.sh
) -
Setze
$ippage
auficanhazip.com
- Hole aktuelle öffentliche IP via
curl
📬 Benötigte Tools:
-
curl
-
nc
(netcat) -
sed
,awk
,grep
,uniq
-
Bash >= 4
Script:
#!/bin/bash
user=$(whoami)
data="/home/$user/script-data/$(basename "$0")"
ippage="icanhazip.com"
ipneu=$(curl -s "$ippage")
if [ ! -d "$data" ]; then
mkdir -p "$data"
fi
if [ -n "$1" ] && [ "$1" = "suche" ]; then
cat "$data/ipdb.csv" | sed 's/;/ /g' | sed 's/\([0-9]\{4\}\)-\([0-9]\{2\}\)-\([0-9]\{2\}\)/\3.\2.\1/' | grep "$2" | awk '{print $1, "", "", $3}' | uniq
exit
else
if nc -z -w 1 "$ippage" 443 2>/dev/null; then
echo "$(date +"%Y-%m-%d;%H:%M");$ipneu" >> "$data/ipdb.csv"
echo "OK: $ipneu"
else
if nc -z -w 1 "google.de" 443 2>/dev/null; then
echo "Fehler, $ippage nicht erreichbar."
echo "$(date +"%Y-%m-%d;%H:%M");$ippage nicht erreichbar" >> "$data/ipdb.csv"
else
echo "Kein Internet."
echo "$(date +"%Y-%m-%d;%H:%M");offline" >> "$data/ipdb.csv"
fi
fi
fi
No Comments