PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : IP logging mit PHP?



RambozoTheClown
10-09-2001, 15:50
Hallo zusammen,

kann mir jemand von euch sagen, ob es möglich ist, mit PHP die IP-Adresse eines Klient-Rechners zu bestimmen? Wenn ja wie? Ich habe irgendwie in der Funktionsreferenz nichts gefunden...

Danke, Ulf

LKH
10-09-2001, 17:10
Hallo,

versuche es mal mit $REMOTE_ADDR

Hoffe es hilft,

Alexander Hinrichs
22-09-2001, 18:02
Hi,

$ip=getenv("REMOTE_ADDR"); // So geht es...

Nun ist die Variable $ip = mit der IP Adresse gefüllt.

Woran Du denken solltest ist, dass Du damit nur die IP Adresse bekommst, die der Webserver sehen kann. Wenn der Client über einen Router oder so mit eigener IP geht dann siehst Du die IP des Routers... Um die exakte IP des Client zu bekommen verwende besser JavaScript... (das liegt daran, das Javascript auf dem Client ausgeführt wird und PHP auf dem Server ausgeführt wird.)

Gruß Alexander

Prick
23-09-2001, 21:23
<BLOCKQUOTE><font size="1" face="Arial,Helvetica,Geneva">Zitat:</font><HR>$ip=getenv("REMOTE_ADDR"); // So geht es...[/quote]

wobei $ip= $REMOTE_ADDR vollkommen ausreicht. :-)
Außerdem solltest Du nicht vergessen, das Datum mit zu loggen:
$datum=date("d.m.Y - H:i:s");

CU

iGEL
23-09-2001, 22:17
Moin!

$ip = getenv("REMOTE_ADDR") hat aber zwei Vorteile. Zum einen funktioniert sie auch in Funktionen, ohne dass man auf globale Variablen zurückgreifen muss, zum anderen werden diese Variablen von Parametern überschrieben, die an das Script übergeben werden. Wenn nun jemand www.hallo.de/hallo.php?REMOTE_ADDR=Mist eintippen würde, käme da Mist raus.

Ich gebe zu, so ein riesen Vorteil ist das nicht, aber der Aufwand ist ja nun auch nicht viel größer. Ich verwende immer getenv() :)

cu Johannes

reno
24-09-2001, 07:36
getenv() ist die empfohlene Methode.
Siehe auch: http://www.koehntopp.de/php/faq-phpinterpreter.html#phpinterpreter-11

BuCkA
18-09-2002, 15:56
Gibt es auch eine Möglichkeit, die richtige Client Adresse heraus zu bekommen?

Beispiel:
Jemand Arbeitet in einem privatem Netz mit der IP a.c.d.e und geht über ein Gateway mit der IP e.d.c.a bekomme ich mit REMOTE_ADDR die Adresse e.d.c.a! Wenn jetzt aus diesem Netz 10 Rechner über das Gateway gehen, haben alle 10 die gleiche IP sind aber unterschiedliche Arbeitsplätze.

Ich habe bisher noch keine Lösung gefunden. Könnte ja sein, dass sich damit schon jemand auseinandergesetzt hat und eventuell eine Lösung hat.

Grüßle!!

Röme
18-09-2002, 16:10
Abgesehen davon, dass es wahrscheinlich nicht möglich ist, ist es auch unsinnig.
Denn, wenn am Gateway NAT (Network Adress Translation) eingesetzt wird haben die Clients dahinter meistens eine IP aus den privaten IP-Bereichen.
Die nützt Dir eigentlich gar nichts, da sie auf der Welt zigfach vorkommen kann und im Internet keine Bedeutung hat.

Gruss
Röme

BuCkA
20-09-2002, 20:56
Hi,

sinnig kann dahingestellt bleiben. In meinem Fall habe ich 2 Private Netzwerke die beide zusammen über ein Routersystem (an letzter Stelle sogar der selbe Router) Ins Web auf eine bestimmte Seite gehen und dort möchte ich das wieder auswerten können. Bin schon auf der Suche nach einer Javascript lösung.

Trotzdem Dank!

BuCkA

Pingu
21-09-2002, 18:50
Hi,

also wie meine Vorredner schon sagten, vom Server allein aus ist es nicht möglich, Clients hinter irgendwelchen NAT-Routern zu bestimmen. Dies ist ja auch gerade die Eingenschaft und der Sinn von solchen NAT-Routern. (Ausnahme: Wenn der NAT-Router so eingestellt ist, daß jedem internen Rechner ein definierter Ausgangsport zugeordnent ist. Jedoch weiß ich nicht, ob man das überhaupt einstellen kann. Es ist somit ein rein theoretischer Ansatz.)

Eine Möglichkeit wäre mit Cookies zu arbeiten. Dann kann man einfach vom Server aus einen Keks hinterlassen und bei der nächsten Seite, kann man den Rechner/Browser wieder identifizieren.
Wenn man keine Kekse möchte, könnte man auch mit Sessions arbeiten.

just my 2 cents.

-= Pingu =-

JoelH
21-09-2002, 20:59
@Pingu
und wie identifizieren die Sessions den User ? Die brauchen in diesem Fall auch Cookies ;)

Pingu
21-09-2002, 21:25
Original geschrieben von JoelH
@Pingu
und wie identifizieren die Sessions den User ? Die brauchen in diesem Fall auch Cookies ;)
Ne, nicht. Die Sessionvariable kann auch über den Link als Parameter mit geliefert werden, z.B. bei vielen am "*?s=xxxxxx" zu erkennen. PHP beachtet dann automatisch, daß die Sessionvariable bei allen Links eingefügt wird. Da ich mich selber aber noch nicht genau mit den Sessions befaßt habe, kann ich nicht sagen wie es wirklich funzt. Ich Idiot hatte mir lieber die Arbeit gemacht und alles selber nachgebildet.

-= Pingu =-

noklaus
25-09-2002, 15:53
$_SERVER['REMOTE_ADDR']