hi,
also bei mir funktioniert es mit einem einfachen '$_SERVER["REMOTE_ADDR"]'. Hat es einen bestimmten Grund, daß Du so viel abfragst?
es "funktioniert" bei dir in dem sinne, dass du eine IP-adresse angezeigt bekommst.
ob diese aber auch wirklich die IP des client-rechners ist, kannst du nicht sagen.
wenn z.b. ein proxy dazwischen hängt, bekommst du vielleicht die IP des proxies stattdessen.
oder aber der proxy ist sehr freundlich eingestellt, dann bekommst du neben der IP des proxies als REMOTE_ADDR auch noch die eigentliche client-IP unter der kennung HTTP_X_FORWARDED_FOR oder HTTP_CLIENT_IP mitgeteilt.
diese information kann der proxy in zusätzlichen HTTP-headern mitliefern, muss er aber nicht.
der rest aus mikes script dient dann nochmal extra zur unterscheidung, ob der wert jetzt aus dem superglobalen array $_SERVER geholt werden soll, oder per funktion getenv().
dies dient dazu, unterschiedliche PHP-versionen zu berücksichtigen - wenn du also weisst, dass du nur für (eine) aktuelle PHP-version(en) programmierst, kannst du dir diese abfrage sparen, und nur den zugriff üer $_SERVER verwenden.
gruss,
wahsaga