User since
2003-09-25
182
Artikel
BenutzerIn
moins,
ein Server steht in einem LAN und man kann mittels Browser Webseiten darauf aufrufen. Dann hat er eine IP ala 192.168.1.123.
Gleichzeitig ist dieser Server aber auch mittels NAT von draussen erreichbar, dann hat er eine öffentliche IP ala 85.xxx.xxx.xxx.
Wir nutzen GoogleMaps auf diesem Server. Man kann die entsprechenden Seiten sowohl intern im LAN als auch von draussen erreichen. Nun ist es wohl so, dass der Key, den man bei Google erzeugt, anhand einer IP generiert wird, die dann in der URL-Adresszeile des Browsers eingetragen werden muss, damit das Ganze funktioniert. Generiere ich also einen Key mit 192.xxxxx dann kann ich GoogleMaps auf dem Server m LAN benutzen. Rufe ich die Seiten jedoch von aussen mit 85.xxx auf, funktioniert Maps nicht. Andersrum genauso. Ich möchte also für beide Fälle einen Key generieren, in einer Datei ablegen und GoogleMaps dann anhand des Keys aufrufen, der der IP entspricht, mit der der Nutzer den Server anruft, d.h. steht in der Adresszeile 85.xxx nutze ich den entsprechenden Key für 85.xxx.
Lange Rede kurzer Sinn - ich brauche eine Methode, die IP zu ermitteln, die der Nutzer in der Adresszeile seines Browsers für unseren Server eingegeben hat.
gruß mordur
User since
2005-01-17
14761
Artikel
Admin1
Wenn es ein Webserver ist, sollte in $ENV{'REMOTE_ADDR'} die IP des Nutzers und in $ENV{'SERVER_ADDR'} die des angewählten Servers stehen.
User since
2003-09-25
182
Artikel
BenutzerIn
ok, danke. ist $ENV{'SERVER_ADDR'} eigentlich immer gleich mit $ENV{'HTTP_HOST'}?
User since
2005-01-17
14761
Artikel
Admin1
Nein.
$ENV{HTTP_HOST} wird aus dem ankommenden HTTP-Request (also dem HTTP-Header Host) des Browsers extrahiert.
$ENV{SERVER_ADDR} liefert der Server selbst.
User since
2003-09-25
182
Artikel
BenutzerIn
dann bin ich mit $ENV{HTTP_HOST} wohl besser bedient.