Oké ik snap je probleem, ik had het zelf ook altijd opgelost op deze manier en het werkt soms wel en soms niet.
Maar waarom zou je met ip's achter een router willen werken? De ip's die achter een router te vinden zijn zijn altijd network use ip's(192.168.x.x, 10.x.x.x, etc).
Stel je wil dit b.v. gaan gebruiken voor een poll dat je dat blockt op intern+extern ip, zodat je niet nog een keer vanaf de zelfde pc in het netwerk kan voten.
Dit lijkt me erg overdreven, moetten ze maar niet achter een router/proxy gaan werken.
Neem een voorbeeld aan kennisnet(internet voor scholen, tot 1 januarie), daar zit je achter een proxy.
Daar kan je niet voten als iemand anders vanuit kennisnet al gevote heeft.
Maarja dat is dan jammer vind ik, daar trek ik me nooit iets van aan bij het scripten.
Maar voor het geval dat je er iets aan hebt, hier een stukje van mijn GET system.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
| function func_GetIP() {
global $HTTP_SERVER_VARS;
$getip_ip_array = explode(".",$HTTP_SERVER_VARS["REMOTE_ADDR"]);
$getip_ip = $HTTP_SERVER_VARS["REMOTE_ADDR"];
if ((stristr($getip_ip,"192.168.")) || (stristr($getip_ip,"172.")) &&
(stristr($getip_ip,"16.")) || (stristr($getip_ip,"17."))
|| (stristr($getip_ip,"18.")) || (stristr($getip_ip,"19."))
|| (stristr($getip_ip,"20.")) || (stristr($getip_ip,"21."))
|| (stristr($getip_ip,"22.")) || (stristr($getip_ip,"23."))
|| (stristr($getip_ip,"24.")) || (stristr($getip_ip,"25."))
|| (stristr($getip_ip,"26.")) || (stristr($getip_ip,"27."))
|| (stristr($getip_ip,"28.")) || (stristr($getip_ip,"29."))
|| (stristr($getip_ip,"30.")) || (stristr($getip_ip,"31."))
|| (stristr($getip_ip,"127.0.0."))) {
//Dit zijn IPRanges die NIET op internet bestaan, deze
//moet je NIET toelaten op je site
$getip_client_ip = $HTTP_SERVER_VARS["REMOTE_ADDR"];
$getip_client_type = "LANIP";
} elseif ($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"] != "") {
//Server
$getip_server_ip = $HTTP_SERVER_VARS["REMOTE_ADDR"];
$getip_server_host = @gethostbyaddr($HTTP_SERVER_VARS["REMOTE_ADDR"]);
//Client
$getip_client_ip = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"];
$getip_client_host = @gethostbyaddr($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"]);
$getip_client_type = "WANIP";
} else {
//Client
$getip_client_ip = $HTTP_SERVER_VARS["REMOTE_ADDR"];
$getip_client_host = @gethostbyaddr($HTTP_SERVER_VARS["REMOTE_ADDR"]);
$getip_client_type = "WANIP";
}
return array("client_ip"=>$getip_client_ip,"client_host"=>$getip_client_host,
"server_ip"=>$getip_server_ip,"server_host"=>$getip_server_host,
"client_type"=>$getip_client_type);
} |
Het is niet geheel waterdicht, maar werkt al leuk. Soms heb ik een denkfout(host achter proxy? kan nooit, zit wel in mn script, erg stom)
Zo heb ik ook een BrowserGET en een LangGET(op basis van browserlang+host(home.nl b.v.).