Ask yourself if you are happy and then you cease to be.
Hier is inderdaad gewoon een string voor die je kan gebruiken. Ik heb even snel een klein scriptje voor je van php.net gehaald om weer te geven wat er mogelijk is. (Dit script werkt dus alleen bij php versies voor 4.2.x. Voor alle versies er na moet je de variabelen vervangen door de nieuwe globals.)
PHP:
1
2
3
4
5
6
7
8
9
10
| <? if ($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"] != ""){ $IP = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"]; $proxy = $HTTP_SERVER_VARS["REMOTE_ADDR"]; $host = @gethostbyaddr($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"]); }else{ $IP = $HTTP_SERVER_VARS["REMOTE_ADDR"]; $host = @gethostbyaddr($HTTP_SERVER_VARS["REMOTE_ADDR"]); } ?> |
Dank U!
Ask yourself if you are happy and then you cease to be.
Let even op: er zijn ook mensen die thuis hun internet delen m.b.v. een proxy. Met bovenstaand script krijg je dan dus het interne ip-adres (b.v. 192.168.x.x of 10.x.x.x). In die gevallen moet je dus toch $HTTP_SERVER_VARS["REMOTE_ADDR"] gebruiken.
Dat is niet zo moeilijk... even controleren of $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"] begint met 192.168 of met 10. (of een van de andere reeksen).
Dat is niet zo moeilijk... even controleren of $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"] begint met 192.168 of met 10. (of een van de andere reeksen).
Of deze headers meegestuurd worden ligt ook aan de configuratie van de gebruikte proxy server. Sommige proxy servers sturen geen HTTP_X_FORWARDED_FOR header mee, sommige ook geen HTTP_VIA en HTTP_PROXY_CONNECTION. Als de proxy server voor anonimiteit is geconfigureerd, valt dus uberhaupt niet meer het oorspronkelijke ip adres te achterhalen. Deze methode is dus zeker niet in alle gevallen.
[ Voor 7% gewijzigd door riotrick op 01-06-2003 02:31 ]