# Mittels PHP die lokale IP im eigenen LAN ermitteln...oder doch Javascript



## waldbauer com (14. Januar 2005)

Hallo erstmal @ Alle als neues Mitglied !

...und dann gleich zu meiner kniffligen Frage. In einem lokalen LAN können die Nutzer auf den im eigenen Haus stehenden Webserver zugreifen. Es soll nun möglich sein, die aktuelle IP des lokalen Client mittels PHP zu ermitteln.

Beispiel:

Client PC mit IP per DHCP derzeit 192.168.1.100 greift auf eigene Homepage auf 192.168.1.1 zu. Es sollten nun auf der Homepage spezielle Links auf der Seite generiert werden, die die IP des Clients übergeben; wenn möglich natürlich nicht mit Javascript.

also... /test.php?ip=192.168.1.100

Vielen Dank für eure Ratschläge


----------



## sparco (14. Januar 2005)

Also, du meinst mit GET und POST?


----------



## waldbauer com (14. Januar 2005)

Nein. 

Ich befinde mich in einem Lokalen LAN mit einer per DHCP zugewiesen IP Adresse zB. 192.168.1.100 und greife auf den - ebenfalls im Lan - eigenen Webserver zu.

Die dort befindliche Webseite (PHP Skript) sollte nun in der Lage sein den aktuellen Client im LAN zu erkennen also 192.168.1.101 und entsprechende Links bereitstellen.

Die ENV Parameter bleiben jedoch anscheinend für lokale Subnetze leer - liefern also nur ein Ergebnis wenn der Client extern zugreift.


----------



## sparco (14. Januar 2005)

Weis nicht wie im LAN aber normal geht es:
if ($_SERVER['REMOTE_ADDR'] == '192.168.1.101')
{
  //Links fuer den User
}
else
{
  //Normale Links
}


----------



## waldbauer com (14. Januar 2005)

geht nicht - i will die lokale ip ja auf jeden fall haben...
..der link soll dann eben statt /test.php?ip=80.xxxxxx -- /test.php?ip=192.168.1.100 sein.


----------



## Timbonet (14. Januar 2005)

In $_SERVER["REMOTE_ADDR"] steht immer die Client-IP.


----------



## Sven Petruschke (14. Januar 2005)

Andere Frage: Welchen Webserver verwendest Du denn?
REMOTE_ADDR ist nur unter Apache verfügbar.

Sven


----------



## waldbauer com (15. Januar 2005)

...da bin ich nicht überzeugt - ich denke das auch die $_SERVER["REMOTE_ADDR"] nur den externen Client aus dem Internet auflöst - nicht aber den am internen LAN hängenden. Dann bleibt die Variable leer - egal welcher Server.


----------



## Oliver Gringel (15. Januar 2005)

REMOTE_ADDR gibt dir genau die Adresse, die im IP-Header des Packets als Source drinsteht. Wenn das Packet auf dem Weg zum Server durch einen Router mit SNAT gelaufen ist, dann wurde die Source-IP natürlich verändert.


----------

