# IP Adresse via PHP auslesen und speichern



## Ruediger (20. Juni 2002)

Tach zusammen,

ich möchte von jedem User, der auf meinen Seiten einen bestimmten Vorgang ausführt die IP Adresse auslesen und in eine MySQL DB speichern lassen.

Ich habe mich schon quer durch das php.net docu gelesen, aber nirgendwo eine lösung für das AUSLESEN gefunden.

Danke für die Hilfe!


----------



## dave_ (20. Juni 2002)

$REMOTE_ADDR ist die ip adresse von dem client.

http://www.php.net/manual/en/reserved.variables.php


----------



## dune911 (20. Juni 2002)

mit folgendem code kannst du die ip-adresse auslesen...


```
$ip = getenv ("REMOTE_ADDR"); // get the ip number of the user
```

...und sie dann ganz normal wie eine variable handhaben,
also anzeigen lassen oder auch in deiner datenbank speichern.


----------



## Flex (20. Juni 2002)

Ähm, wo ist das Problem mit $_SERVER['REMOTE_ADDR'] ?
Die kannst du auch direkt in die MySQL DB speichern oder alles machen was du mit ner anderen Variable auch machen kannst... Wozu die Umstände?


----------



## yunus219 (7. November 2007)

Leutz ich hab eine Frage an euch, undzwar ich hab ne seite gemacht und hab zusätzlich ne domain darauf ich meinen space verlinke wenn auf die adresse gehe dann kommt als IP die Adresse des Webspaces.
Kann mir vielleicht jemand weiterhelfen, dass ich daraus die IP des tatsächlichen Clients herausfinde. 

THX im Voraus


----------



## nepda (7. November 2007)

yunus219 hat gesagt.:


> Leutz ich hab eine Frage an euch, undzwar ich hab ne seite gemacht und hab zusätzlich ne domain darauf ich meinen space verlinke wenn auf die adresse gehe dann kommt als IP die Adresse des Webspaces.
> Kann mir vielleicht jemand weiterhelfen, dass ich daraus die IP des tatsächlichen Clients herausfinde.
> 
> THX im Voraus



Die Frage wurde doch schon beantwortet!?


```
echo $_SERVER['REMOTE_ADDR'];
```


----------



## yunus219 (7. November 2007)

ich glaub du hast mich nicht verstanden ich hab den quelltext eingefügt, aber ich erhalte die IP des weiterleitenden server's, nicht die tatsächliche IP des Clients.


----------



## Flex (8. November 2007)

Deine Beschreibung ist irgendwie diffus.

Könntest du mal klar sagen, was passiert, wenn man auf deine Domain A kommt?

So wie ich es verstanden habe:

User => Domain A - Weiterleitung > Webspace B => IP Anzeigen -> IP von Domain A

Richtig?
Wenn ja, wie wird die Weiterleitung gemacht?


----------



## Esperanza79 (24. November 2010)

*Hola amigos y amigas 

...hab da mal eine Frage... bis vor
einiger Zeit wurde in einer Community
die IP-Adresse der User die gerade online
sind noch angezeigt... ist nun leider nicht
mehr so... Gibt es ein Programm mit dem 
man die IP von Online-Usern auslesen kann?

*


----------



## sheel (24. November 2010)

In "einer" Community?
Also nicht deine?

Wo um alles in der Welt willst du dann die IPs herbekommen, die mit dem Server gerade verbunden sind?
Der Server wird die Daten nicht rausrücken.

Also, solange es legal bleibt: Nein, gibts nicht.


----------



## chickenwing (24. November 2010)

Moin,

da hierzulande derzeit eine Diskussion darüber entbrannt ist, ob die IP möglicherweise Rückschlüsse auf den Surfer zulässt (ganz deutlich: ob er damit identifizierbar ist => Verstoß gg. das Datenschutzgesetz) und einige sogar fordern, die IPs nicht mal mehr auf dem Server mitzuloggen, täte jede Community prophylaktisch aus Selbstschutz schon mal gut daran, sie zumindest nicht mehr zu veröffentlichen. 

Ich persönlich finde die Diskussion Quatsch, denn wie sollte z.B. ich rauskriegen, wer am 30.9.2010 um 14:28 Uhr mit der IP xx.xx.xx.xx unterwegs war? Okay, wenn ich bei einem Provider arbeiten würde und an einer signifikanten Betriebsschnittstelle säße, die Zugriff auf diese Daten hat. Allerdings wäre in dem Falle die Weitergabe ohnehin illegal (also Personendaten zur IP). Etwas anderes wäre, wenn z.B. die Großindustrie (oder auch die Strafverfolgungsbehörden ohne Anlass) auf diese Datenbanken Zugriff hätte. Dagegen würde ich an vorderster Stelle mitdemonstrieren. Aber soweit sind wir (noch) nicht. Wenngleich ich mich schon manchmal frage, wie die Musikindustrie an diese Daten kommt.

Ich weiß auch gar nicht, was man als "Normalsterblicher" mit der IP anfangen wollte. Aus eigenen Erfahrungen weiß ich, dass man damit jemanden bestenfalls auf einen Radius von ca. 10km vermuten könnte (Selbstversuch Wohnung -> Büro bei gleichem Provider) Da gab es *gelegentlich *schon mal 'ne Übereinstimmung bei den ersten beiden IP-Blöcken. Und ob die Strecken nicht noch weiter auseinanderliegen können, kann ich nicht mal sagen. Das einzige, was man damit erfahren kann, ist, bei welchem Provider jemand ist. Aber damit auf eine bestimmte Person zurückzuschließen, halte ich für mehr als gewagt (solange diese keine feste IP hat). 
Okay, wie das allerdings auf dem Dorf ist, kann ich nicht beurteilen. In der Großstadt ist das aus meiner Sicht Humbug. Ich würd' mir jedenfalls viel mehr Sorgen über die Browser-Fingerprints und Super-Cookies machen. Wer mal spaßeshalber einen Test machen möchte: http://panopticlick.eff.org/

Greetz
cw


----------



## Flex (24. November 2010)

Die Diskussion ist m. E. n. scheinheilig... Denn grundsätzlich speichert jeder Apache (in der Standardkonfiguration) die Zeit, die IP Adresse und die Seite die aufgerufen wurde in einem Log...


----------



## chickenwing (24. November 2010)

Eben. Allerdings kann man es ja den Serverbetreibern zur Auflage machen, die IP künftig nicht mehr zu speichern. Bleibt nur die Frage, wer das und wie es geprüft werden soll ;-)
Aber nichts ist so unsinnig, als dass es nicht auch beschlossen werden könnte.

Greetz
cw


----------



## Thomasio (24. November 2010)

In D noch nicht ganz so verbreitet, aber auch auf dem Vormarsch sind Provider, die dem User überhaupt keine public IP mehr geben.
Insbesondere Billig-Provider können es sich überhaupt nicht leisten aus dem begrenzten Vorrat an public IP´s genug für sich zu reservieren um allen Usern eine davon zu geben, auch nicht dynamisch.
Nachdem IPv6 sich nicht besonders durchsetzt, heisst die Lösung der Provider NAT, sprich sämtliche User einer ganzen Stadt werden über die selbe public IP geroutet, und die User bekommen nur noch private IP´s.

Daraus folgen 2 Dinge:
1) Jeder Versuch IP´s zu loggen scheitert kläglich, denn das Einzige was da geloggt wird ist die public IP vom NAT des Providers, eine (nachträgliche) Identifizierung des Users ist selbst für den Provider nahezu unmöglich, selbst wenn zur Strafverfolgung eine Behörde zum Provider geht und fragt, welcher User am xx um xx Uhr mit IP xxx unterwegs war, dann kann der Provider nur die Stadt angeben, aus der der User kommt, bestenfalls noch eine Liste der zig1000 User die an dem Tag um die Zeit online waren.
2) Alle Services die auf IP´s basieren funktionieren nicht mehr richtig, P2P Programme bekommen (selbst mit noch so ausgefeilten NAT-Traversals) oft überhaupt keine Verbindung mehr, Server wie Rapidshare erlauben plötzlich nicht mehr einen download pro User, sondern einen Download pro Stadt, usw.

Ich persönliche denke mal, das ist durchaus ein Vorteil, im Sinne von Privatshäre.
Allerdings bedeutet es für den Fragesteller hier:
Das geht mit $_SERVER['REMOTE_ADDR']
Heutzutage macht das aber keinen Sinn mehr, selbst wenn du es hin bekommst, hast du zumindest mit dem Teil der User die hinter einem NAT sitzen diverse Probleme beim Auswerten der Adressen.


----------



## Asteria (10. Mai 2011)

Guten Morgen zusammen.

Das Thema ist zwar schon eine ganze Weile nciht mehr in Nutzung,
aber meine Frage passt recht gut dazu, daher poste ich mal hier.

Unzwar geht es um Folgendes: ich bastel mir seit einigen Wochen
ein eigenes Browsergame zusammen. Jedes Browsergame braucht User.
Am Besten kommt daran durch Werbung, insbesondere Mund zu Mund
bzw. User zu User. Daher hab ich eine recht übliche Überlegung aufgegriffen,
nämlich den Freundschaftslink. Jemand spielt das Spiel verschickt einen
Link und wenn wer draufklickt, bekommt der User dafür eine Belohnung.

Nun kommen wir zum eigentlichen Thema. Ich will natürlich nciht,
dass sich jemand hinsetzt und immernur auf Refresh klickt um möglichst viel
von der Belohnung zu zehren. Einfachste Lösung wären wohl Cookies.
Problem dabei ist, dass diese ohne weiteres gelöscht werden können.
Daher war die Ersatzlösung logischerweise über die IP zu gehen.
Problem ist allerdings durch den Anbieter wird häufig die IP gewechselt,
vorzugsweise 1mal am Tag. Das macht die Abfrage, ob diese IP den Link
schon besucht hat, recht... unmöglich. Allerdings habe ich bei einem anderen
Browsergame bereits gesehen, dass es irgendwie funktioniert.
Sämtliche Cookies gelöscht, Router reconnected, also andere IP gehabt,
dennoch hat der Server erkannt, dass ich die selbe Person bin.

Jemand also vielleicht noch andere Ideen für dieses Problem?
Oder gibt es möglicherweise noch eine erweiterte Lösung mit IP-Adressen?

Danke schonmal für eure Zeit und Mühen.
Hoffe ich habe alles genau genug erklärt.
Beste Grüße
Simon


----------



## Yaslaw (10. Mai 2011)

Nur das Verschicken sollte noch nix geben. Aber wenn sich der neue User anmeldet, dann ist eine Belohnung fällig.

Der Link der generiert wird, hat ein generierter Code als Parameter. Oder du gibst den generierten Code einfach so im Mail mit. Bei der Anmeldung des Neuusers wird dieser Code eingelöst. In deiner DB hast gespeichert, welcher bestehende User welchen Code versendet hat. Wird der Code eingelöst, bekommt der alte User den Bonus.

Da ist nix mit Refresh - jeder Code ist einmal Gültig.


----------



## Thomasio (10. Mai 2011)

Es gibt 100te Lösungsansätze, von irgendwelchen versteckten Einträgen in der Registry, über serverseitig gespeicherte IP, bis zu Mischprüfungen wo mehrere Sachen überprüft werden, z.B. IP + Browserversion.
Das Ganze scheitert aber grundsätzlich an 2 Dingen.
1) Alles was auf der Clientseite gespeichert wird, egal wie versteckt, ist komplett weg, wenn der User seinen PC neu installiert, oder einen VirtualPC verwendet.
2) Alles was auf der Serverseite gespeichert wird ist sinnlos, wenn der User hinter einem NAT sitzt oder einen Proxy verwendet.

Das Einzige was effektiv funktioniert ist die M$-Methode, wo bei der WGA-Prüfung dein PC Hardware-Daten an M$ schickt, die bei M$ gespeichert werden, so dass sie bei einer Neuinstallation anhand deiner Hardware feststellen können, dass es der selbe PC ist.
Wie wir aber alle wissen, funktioniert auch das nicht wirklich, weil der User ganz simpel das Programm zur WGA-Prüfung löschen kann.

Eine andere Lösung dazu lautet Memberliste und Bonus-Code.
Jede Neuanmeldung kann max von einem bestehenden User empfohlen worden sein.
Also kommt ins Anmeldeformular ein extra Feld für den Bonus-Code rein, und wenn der neue User da was angibt, kannst du dem passenden User seine Belohnung geben.
Allerdings hast du damit immer noch das Problem, dass ein User sich mehrmals anmelden kann und sich quasi selbst empfiehlt.


----------



## Asteria (10. Mai 2011)

Hallo zusammen !

Die Idee mit dem Ref-Code, der sich nur auf die Anmeldung bezieht,
passt nciht ganz in mein System bzw. in meine Überlegung.
..aber der Vorschlag mit dem Test auf Browserversion macht das Ganze doch
schon etwas sicherer. Vielen Dank für diesen Tipp.

Beste Grüße
Simon.


----------

