[PHP] Pobranie prywatnego, rzeczywistego IP

[PHP] Pobranie prywatnego, rzeczywistego IP
  • Rejestracja: dni
  • Ostatnio: dni
0

Jak pobrać rzeczywiste IP (nie publiczne)? Podobnie jak na tej stronie
http://tonid.net/ip/
Wiem, że normalnie publiczne IP to można pobrać

Kopiuj
$ip = $HTTP_SERVER_VARS['REMOTE_ADDR']; 
MatroX
  • Rejestracja: dni
  • Ostatnio: dni
0

No i to "normalne" IP to jedyne jakie jest dostępne.

MA
  • Rejestracja: dni
  • Ostatnio: dni
0

Można również korzystać ze zmiennych HTTP_X_FORWARDED_FOR, HTTP_VIA.
Krótki opis zmiennych:
REMOTE_ADDR - zewnętrzny adres IP (taki jaki widzą serwery, z którymi nawiązujesz połączenie)
Następne zmienne są opcjonalne (serwer proxy, przez który się łączymy może je przesłać do serwera www lub nie, równie dobrze może przesłać sfałszowane dane):
HTTP_X_FORWARDED_FOR - adres ip, z jakiego użytkownik się połączył do serwera proxy
HTTP_VIA - adres ip serwera proxy.
Wartości tych zmiennych znajdziemy w tablicy zmiennych superglobalnych $_SERVER. Przykład:

Kopiuj
<?
echo 'IP: '.$_SERVER["REMOTE_ADDR"].'<br/>';
echo 'IP serwera proxy: '.$_SERVER["HTTP_VIA"].'<br/>';
echo 'IP zza serwera proxy ("prawdziwe"): '.$_SERVER["HTTP_X_FORWARDED_FOR"].'<br/>';
?>

Pozdrawiam mac

MatroX
  • Rejestracja: dni
  • Ostatnio: dni
0
Mac napisał(a)

Można również korzystać ze zmiennych HTTP_X_FORWARDED_FOR, HTTP_VIA.
Krótki opis zmiennych:
REMOTE_ADDR - zewnętrzny adres IP (taki jaki widzą serwery, z którymi nawiązujesz połączenie)
Następne zmienne są opcjonalne (serwer proxy, przez który się łączymy może je przesłać do serwera www lub nie, równie dobrze może przesłać sfałszowane dane):
HTTP_X_FORWARDED_FOR - adres ip, z jakiego użytkownik się połączył do serwera proxy
HTTP_VIA - adres ip serwera proxy.
Wartości tych zmiennych znajdziemy w tablicy zmiennych superglobalnych $_SERVER. Przykład:

Kopiuj
<?
echo 'IP: '.$_SERVER["REMOTE_ADDR"].'<br/>';
echo 'IP serwera proxy: '.$_SERVER["HTTP_VIA"].'<br/>';
echo 'IP zza serwera proxy ("prawdziwe"): '.$_SERVER["HTTP_X_FORWARDED_FOR"].'<br/>';
?>

Pozdrawiam mac

Niestety nie każdy serwer to oferuje.

tomkiewicz
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1193
0
MatroX napisał(a)

Niestety nie każdy serwer to oferuje.

uzupełnię: nie każdy serwer proxy ;). Konkretnie, to transparent proxy zazwyczaj przekazują tą wartość, anonymous nie powinny.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.