Anzeige:
Ergebnis 1 bis 13 von 13

Thema: IP logging mit PHP?

  1. #1
    RambozoTheClown
    Gast

    Post IP logging mit PHP?

    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

  2. #2
    Registrierter Benutzer
    Registriert seit
    01.07.1999
    Ort
    Jena
    Beiträge
    29

    Post

    Hallo,

    versuche es mal mit $REMOTE_ADDR

    Hoffe es hilft,

  3. #3
    Alexander Hinrichs
    Gast

    Post

    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

  4. #4
    Registrierter Benutzer
    Registriert seit
    15.05.2001
    Beiträge
    63

    Post

    <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

  5. #5
    iGEL
    Gast

    Post

    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

  6. #6
    Registrierter Benutzer Avatar von reno
    Registriert seit
    25.05.1999
    Ort
    Hohenpeißenberg
    Beiträge
    67

    Post

    getenv() ist die empfohlene Methode.
    Siehe auch: http://www.koehntopp.de/php/faq-phpi...interpreter-11
    Hack on

  7. #7
    Registrierter Benutzer
    Registriert seit
    18.06.2002
    Beiträge
    20
    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!!

  8. #8
    Registrierter Benutzer
    Registriert seit
    31.08.2001
    Ort
    Uster, CH
    Beiträge
    28
    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

  9. #9
    Registrierter Benutzer
    Registriert seit
    18.06.2002
    Beiträge
    20
    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

  10. #10
    Registrierter Benutzer
    Registriert seit
    22.08.2002
    Ort
    Nürnberg
    Beiträge
    638
    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 =-

  11. #11
    Registrierter Benutzer
    Registriert seit
    08.03.2001
    Ort
    FStone,D
    Beiträge
    186

    hmm,

    @Pingu
    und wie identifizieren die Sessions den User ? Die brauchen in diesem Fall auch Cookies

  12. #12
    Registrierter Benutzer
    Registriert seit
    22.08.2002
    Ort
    Nürnberg
    Beiträge
    638

    Re: hmm,

    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 =-

  13. #13
    noklaus
    Gast
    $_SERVER['REMOTE_ADDR']

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •