Olivetti
Aktives Mitglied
- Dabei seit
- 09.12.2005
- Beiträge
- 11.692
- Reaktionspunkte
- 4.077
IPTracker
Plan: Die IP-Adresse soll von Client-Rechnern in regelmässigen Abständen getrackt und auf einem Server gespeichert werden.
Voraussetzungen:
Server - Webserver mit PHP
Clients - keine
Todo:
Authentifizierung
GeoLocation
Anmerkungen am Ende beachten.
Server:
Auf dem Server ein Verzeichnis erstellen (z.B. ip), darin folgende index.php Datei erstellen:
Beim Aufruf im Browser wird die aktuelle WAN-IP des Clients ausgegeben.
Es wird eine Datei "ip.txt" auf dem Server im Verzeichnis .../ip erzeugt,
mit z.B. folgendem Inhalt (ISO-Datum # WAN-IP # hostname):
1940-11-22T12:01:59+01:00 # 87.151.244.127 # clientrechnername.local
Alle weiteren Einträge werden an die Datei "ip.txt" angehängt.
Testen auf dem Client im Terminal:
Client:
Anzeigen der Server-"ip.txt":
Im Terminal kann die Datei "ip.txt" mit folgendem Befehl abgerufen werden.
Tracken:
Variante 1:
Script wird manuell gestartet, trackt beim Aufruf, dann jeweils zur vollen Stunde
Auf dem Client wird ein Shellscript "iptracker" in ~/bin oder /usr/local/bin mit folgendem Inhalt erzeugt:
In ~/bin oder /usr/local/bin ausführen: [sudo] chmod 755 iptracker
Starten mit: ~/bin/iptracker [&]
oder /usr/local/bin/iptracker [&]
(... & lässt das Script im Hintergrund laufen)
Variante 2:
Script wird mit Launchd jede Stunde gestartet (empfohlen)
Auf dem Client wird ein Shellscript "iptracker" in /usr/local/bin mit folgendem Inhalt erzeugt:
Auf dem Client wird eine Plist "org.ki.iptracker.plist" in /Library/LaunchDaemons mit folgendem Inhalt erzeugt:
In /usr/local/bin ausführen: sudo chmod 755 iptracker
Einmalig starten/registrieren mit: launchctl load /Library/LaunchDaemons/org.ki.iptracker.plist
Variante 3:
Script wird mit StartupItems gestartet, trackt beim Aufruf, dann jeweils zur vollen Stunde
Das Verzeichnis "iptracker" in /Library/StartupItems erstellen.
Hier hinein das gleiche Script wie aus Variante 1 speichern.
Folgende weitere Datei "StartupParameters.plist" speichern:
In /Library/StartupItems ausführen: sudo chown 0:0 iptracker StartupParameters.plist; sudo chmod 755 iptracker
Anmerkungen:
Server:
Falls keine "ip.txt" erzeugt wird, muss sie erstellt werden. Rechte evtl. auf 666.
Plan: Die IP-Adresse soll von Client-Rechnern in regelmässigen Abständen getrackt und auf einem Server gespeichert werden.
Voraussetzungen:
Server - Webserver mit PHP
Clients - keine
Todo:
Authentifizierung
GeoLocation
Anmerkungen am Ende beachten.
Server:
Auf dem Server ein Verzeichnis erstellen (z.B. ip), darin folgende index.php Datei erstellen:
PHP:
<?php
$IP = $_SERVER['REMOTE_ADDR'];
echo $IP;
$QS = $_SERVER['QUERY_STRING'];
$handle = fopen ("ip.txt", "a+");
fwrite ($handle, date("c")." # ".$IP."\t# ".$QS."\n");
fclose ($handle);
?>
Es wird eine Datei "ip.txt" auf dem Server im Verzeichnis .../ip erzeugt,
mit z.B. folgendem Inhalt (ISO-Datum # WAN-IP # hostname):
1940-11-22T12:01:59+01:00 # 87.151.244.127 # clientrechnername.local
Alle weiteren Einträge werden an die Datei "ip.txt" angehängt.
Testen auf dem Client im Terminal:
Code:
curl example.de/ip/index.php?$(hostname)
Anzeigen der Server-"ip.txt":
Im Terminal kann die Datei "ip.txt" mit folgendem Befehl abgerufen werden.
Code:
curl http://server/ip/ip.txt
Variante 1:
Script wird manuell gestartet, trackt beim Aufruf, dann jeweils zur vollen Stunde
Auf dem Client wird ein Shellscript "iptracker" in ~/bin oder /usr/local/bin mit folgendem Inhalt erzeugt:
Code:
#!/bin/bash
# server ersetzen mit z.B. example.de/ip
# Beispiel:
# URL="http://example.de/ip/" oder URL="http://example.de/ip/index.php"
URL="http://server/"
echo "Starting IPTracker"
while true
do
/usr/bin/curl $URL?$(/bin/hostname)
# beide sleeps jeweils ein-/auskommentieren, falls zur vollen Stunde oder Aufruf + 1 Stunde getrackt werden soll
# volle Stunde, 0:23, 1:00, 2:00 usw.
/bin/sleep $((60 * (60 - 10#$(date "+%M")) - 10#$(date "+%S")))
# Aufruf + 1 Stunde
#/bin/sleep 3600
done
Starten mit: ~/bin/iptracker [&]
oder /usr/local/bin/iptracker [&]
(... & lässt das Script im Hintergrund laufen)
Variante 2:
Script wird mit Launchd jede Stunde gestartet (empfohlen)
Auf dem Client wird ein Shellscript "iptracker" in /usr/local/bin mit folgendem Inhalt erzeugt:
Code:
#!/bin/bash
# server ersetzen mit z.B. example.de/ip
# Beispiel:
# URL="http://example.de/ip/" oder URL="http://example.de/ip/index.php"
URL="http://server/"
/usr/bin/curl $URL?$(/bin/hostname)
Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>org.ki.iptracker</string>
<key>Program</key>
<string>/usr/local/bin/iptracker</string>
<key>StartInterval</key>
<integer>3600</integer>
</dict>
</plist>
Einmalig starten/registrieren mit: launchctl load /Library/LaunchDaemons/org.ki.iptracker.plist
Variante 3:
Script wird mit StartupItems gestartet, trackt beim Aufruf, dann jeweils zur vollen Stunde
Das Verzeichnis "iptracker" in /Library/StartupItems erstellen.
Hier hinein das gleiche Script wie aus Variante 1 speichern.
Folgende weitere Datei "StartupParameters.plist" speichern:
Code:
{
Description = "iptracker";
Provides = ("iptracker");
Requires = (Network, "Network Configuration");
OrderPreference = "none";
Messages =
{
start = "Starting iptracker";
};
}
Anmerkungen:
Server:
Falls keine "ip.txt" erzeugt wird, muss sie erstellt werden. Rechte evtl. auf 666.
Zuletzt bearbeitet von einem Moderator: