IP анонимного прокси

  • Автор темы sergo_stavropol
  • Дата начала

sergo_stavropol

Guest
IP анонимного прокси

Я знаю, задавать одни и те же вопросы на разных форумах (а RomikChef непрменно заметит :)) не очень корректно, но тема весьма интересна для меня, а форум. пожалуй, наиболее живой среди аналогов.

Вопрос:
Делаю защиту от анонимных проксей. Заметил одну вещь: ip-адрес прокси не всегда соответствует адресу, передающемуся в переменной окружения REMOTE_ADDR
Например, используя прокси 195.68.95.209, определишься сервером как 195.68.95.210, и еще масса подобных случаев.
Ваши соображения - как скриптом узнать реальный ip. Ведь их у меня в списке >1000, и вручную, сами понимаете, не вариант. Я попробовал пинг - но пингуется все равно 195.168.95.209

Есть ли вообще решение проблемы? Наверняка у многих есть подобный опыт.

Я понимаю, что это вопрос довольно спорный - стоит ли делать подобное, ведь каждому из нас все равно приходится время от врени юзать анонимки, но есть обстоятельства, которые вынуждают меня на некоторое время сделать такую защиту. Поэтому перед нормальными пользователями, желающими посетить мой сайт, я буду мягко извиняться и просить не использовать прокси.

ну в общем, попытался я сделать следущее:

nslookup 192.68.95.209 // mail.banque-harwanne.com
ping mail.banque-harwanne.com // unknown host

видимо, обратная зона прописана, а прямая нет

А я надеялся, что пинганется 192.68.95.210 и я смогу результат пинга сложить в файл со списком нон-грата адресов.

Была еще надежда, что все-таки в какой-нибудь другой переменной окружения передается 192.68.95.209, но при просмотре phpinfo() этого не обнаружил.
 

RomikChef

Guest
О господи, он сюда пришел.
Зачем тебе аналоги?
Какое вообще отношение имеет твой вопрос к PHP?
Какая разница - на чем определять?

Нет, я понимаю, что и здесь могут найтись люди, которым хватит терпения вдолбить тебе простую мысль, что если прокся искажающая, то она для того и придумана, чтобы подсовывать другой адрес.

Но я не понимаю логики, которая тебя приводит на форумы по PHP, а не по технологии интернета.
 

sergo_stavropol

Guest
RomikChef

Аналоги затем, что вдруг найдется именно на этом форуме человек, который с этой проблемой столкнулся и, возможно, справился с ней.

Вопрос мой имеет отношение к php хотя бы потому, что проверку на наличие ip анонимного прокси я делаю именно на нем.

Постепенно мой вопрос перерос в вопрос по технологии интернет, если нет в форуме PHP и новички человека, который знал бы и то, и другое, сделаю так как ты советуешь.
 

Crazy

Developer
sergo_stavropol, тебе нужно просто почитать книжки. В том числе -- про то, как вообще работает прокси. Тогда тебе станет понятно, почему запрос может приходить на один адрес и уходить с другого.

Твоя проблема -- в недостатке базовых знаний. И PHP здесь тебе не поможет.
 

Tronyх

Новичок
Аналоги затем, что вдруг найдется именно на этом форуме человек, который с этой проблемой столкнулся и, возможно, справился с ней.
Нет, я понимаю, что и здесь могут найтись люди, которым хватит терпения вдолбить тебе простую мысль, что если прокся искажающая, то она для того и придумана, чтобы подсовывать другой адрес.
Тебе уже НЕСКОЛЬКО раз дали этот ответ! Тебе мало. Уже человек 5-6 тебе это сказали, а ты ишешь "того единственного" который тебе скажет другое? Повторяю НЕЛЬЗЯ.
 

sergo_stavropol

Guest
Tronyx
Все, понял, дорогие друзья. Пошел читать книжки.
Как сделаю - вернусь. На Яндексе, наверное, тоже вручную все это делали? Так что не надо говорить однозначное "нельзя".
Может, повезет, и найду того единственного

Апокалипсис
я читал эту тему, правда задачу автоматического обновления списка проксей я решил, а вот ты разве не столкнулся с пробелемой, изложенной мной?
 

hawk

Guest
Всем привет.
Сорьки, если не совсем в тему, но я тут подумал - а почему бы не поверять истинность ипишника, пытаясь подключиться к проксе? Т.е. такое.. подключение к самому себе через сторонний сервер. Если IP фиктивный, то ошибки должны вылезать.. Единственно, что на всяких корпоративных серверах, главная цель которых - предотвращать проникновения извне тоже будут ошибки лезть. Но ведь разные ошибки будут, да? :о)
 

sergo_stavropol

Guest
hawk

спасибо за мысли
в смысле - подключиться к самому себе? как?
 

Crazy

Developer
Автор оригинала: hawk
Всем привет.
Сорьки, если не совсем в тему, но я тут подумал - а почему бы не поверять истинность ипишника, пытаясь подключиться к проксе?
По той простой причине, что нормальные (не публичные) прокси людей с улицы обслуживать не будут.
 

woland

Guest
Самый оптимальный код для определения ip:
PHP:
if(getenv("http_client_ip")){
$ip_address=getenv("http_client_ip");}
elseif(getenv("http_x_forwarded_for")){
$ip_address=getenv("http_x_forwarded_for");}
else{
$ip_address=getenv("remote_addr");}
 

hawk

Guest
2sergo_stavropol
А вот это ты уже у ребят спрашивай. Я еще не дорос до подключения через FTP средствами php. :о)
Просто народ часто тут говорит о подключении через ftp, вот у меня мысль и родилась такая. Я знаю, как такое ручкам делать. Но тебе же автоматизировать надо..
 

sergo_stavropol

Guest
woland
что-то в моем phpinfo() нет такой переменно окружения, как http_client_ip

закомментируй пож-ста свой скрипт, если не в лом. Просто непонятно, что имеется в виду
hawk
на моем хостинге ftp_connect закрыт
к тому же, речь идет об http
если я как обычно не понял, расскажи пож-ста как ты ручками бы это сделал. Может тогда воткнусь...
 

woland

Guest
Хм... Пожалуйста:

PHP:
if(getenv("http_client_ip")){   //Далеко не все прокси отдают эту переменную, таких проксей мало, но они есть. Это самый "реальный" ip юзера.
$ip_address=getenv("http_client_ip");}   //Если имеем эту переменную, то она наша, 
elseif(getenv("http_x_forwarded_for")){ //а если не имеем, то тогда пусть будет эта...
$ip_address=getenv("http_x_forwarded_for");} 
else{    //И на худой конец...
$ip_address=getenv("remote_addr");}
 

sergo_stavropol

Guest
ну и что это в конечном итоге даст? Мы узнаем, работает ли юзер через прокси или нет? Но ведь он может работать и через нормальный прокси, не публичный

на моем примере получилось вот что (я работаю из офиса по выделенной линии с трансляцией адреса, один ип на весь офис): мой ip определила только $REMOTE_ADDR
 

hawk

Guest
2sergo
Извини, вру безбожно.. :о( Действительно, при чем тут ftp.. мы же про прокси говорим.. Извини еще раз..
 

sergo_stavropol

Guest
hawk
бывает :))) и как это я, еще, лопух, заметил почти сразу :)
 

sergo_stavropol

Guest
Я вернулся.

для решения задачи использую слудущее:

скрипт открывает соединение через прокси из моей базы (допустим, берет каждый ip из списка) и запрашивает другой скрипт, в котором определяется переменная окружения REMOTE_ADRR

PHP:
<?
$myhost="http://www.domain.com";
$myfiles = "$myhost/newsite/no_proxy/ip.php";                    
$datei = fsockopen("195.68.95.209", 8080, $errno, $errstr);          
if( !$datei )
{        
echo "proxy not available !($errstr)";        
}
else
{        
fputs($datei,"GET $myfiles HTTP/1.0\n Host: $myhost\n\n");        
while (!feof($datei))        
{                
$content .= fgets($datei,128);        
}       
echo $content;
}
получаю:
HTTP/1.0 200 OK Date: Tue, 21 Jan 2003 15:17:20 GMT Server: Apache/1.3.20 (Unix) mod_gzip/1.3.19.1a FrontPage/5.0.2.2510 PHP/4.2.2 mod_fastcgi/2.2.12 mod_ssl/2.8.4 OpenSSL/0.9.6g rus/PL30.5 X-Powered-By: PHP/4.2.2 Content-Type: text/html; charset=windows-1251 Expires: Thu, 01 Jan 1970 00:00:01 GMT Last-Modified: Tue, 21 Jan 2003 15:17:20 GMT X-Cache: MISS from srv-squid.banque-harwanne.fr Proxy-Connection: close 195.68.95.210

195.68.95.210 - заветный ip -

и так циклом по всему списку.

всем спасибо.
 

Апокалипсис

Guest
Слыхали про систему dnsbl? С её помощью можно эффективно закрытьвес проки.
 

sergo_stavropol

Guest
Апокалипсис

не слыхал, расскажи поподробнее
 
Сверху