![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Ściągnąłem sobie dodatek do Mozilli o nazwie Proctor umożliwiający ukrycie faktycznego IP i zastąpienie go wymyślonym. I faktycznie działa, z jednym wyjatkiem - gdy ktoś korzysta z poniższego skryptu:
[php:1:c074073f37]<?php function fetchip() { //get useful vars: $client_ip = $_SERVER['HTTP_CLIENT_IP']; $x_forwarded_for = $_SERVER['HTTP_X_FORWARDED_FOR']; $remote_addr = $_SERVER['REMOTE_ADDR']; // then the script itself if (!empty ($client_ip) ) { $ip_expl = explode('.',$client_ip); $referer = explode('.',$remote_addr); if($referer[0] != $ip_expl[0]) { $ip=array_reverse($ip_expl); $return=implode('.',$ip); } else { $return = $client_ip; }; } elseif (!empty($x_forwarded_for) ) { if(strstr($x_forwarded_for,',')) { $ip_expl = explode(',',$x_forwarded_for); $return = end($ip_expl); } else { $return = $x_forwarded_for; }; } else { $return = $remote_addr; }; unset ($client_ip,$x_forwarded_for,$remote_addr,$ip_expl,); return $return; }; $ip=fetchip(); ?>[/php:1:c074073f37] Forum phpBB nie wykrywa prawdziwego adresu tylko pokazuje moje 123.123.123.123 - a ten skrypt nie? Czemu? Mocno mnie to zaciekawiło ale nie mogę rozpracować zbytnio tego skryptu - pomożecie? Przebija sie przez proxy w3cache i proctora? W jaki sposób? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 691 Pomógł: 0 Dołączył: 6.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Ja wiem, że to są zmienne serwera, ale chodzi mi o to w jaki sposób ten skrypt przechodzi przez proxy? Bo na mozillapl.org zalecają aby mimo proctora korzystać z w3cache, bo pozwala ukryć IP. A ten powyższy skrypt i tak widzi właściwy, sprawdzałem kilka razy.
Ten skrypt też można oszukać i to zarówno przy korzystaniu i nie korzystaniu z proxy. Wystarczy, że klient przy korzystaniu z proxy pośle nagłówek Client-IP. W sumie to nie ma idealnej metody na pobranie prawdziwego IP klienta ponieważ zawsze można zaemulować pracę proxy. Mnie za to dziwi co autor miał na myśli pisząc ten fragment skryptu: [php:1:23fed75723]<?php if($referer[0] != $ip_expl[0]) { $ip=array_reverse($ip_expl); $return=implode('.',$ip); } else { $return = $client_ip; }; ?>[/php:1:23fed75723] Jaki sens ma porównywanie pierwszego członu REMOTE_ADDR i HTTP_CLIENT_IP i zwracanie wyniku w odwrotnej kolejności? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 01:24 |