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() этого не обнаружил.
 
О господи, он сюда пришел.
Зачем тебе аналоги?
Какое вообще отношение имеет твой вопрос к PHP?
Какая разница - на чем определять?

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

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

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

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

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

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

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

спасибо за мысли
в смысле - подключиться к самому себе? как?
 
Автор оригинала: hawk
Всем привет.
Сорьки, если не совсем в тему, но я тут подумал - а почему бы не поверять истинность ипишника, пытаясь подключиться к проксе?
По той простой причине, что нормальные (не публичные) прокси людей с улицы обслуживать не будут.
 
Самый оптимальный код для определения 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");}
 
2sergo_stavropol
А вот это ты уже у ребят спрашивай. Я еще не дорос до подключения через FTP средствами php. :о)
Просто народ часто тут говорит о подключении через ftp, вот у меня мысль и родилась такая. Я знаю, как такое ручкам делать. Но тебе же автоматизировать надо..
 
woland
что-то в моем phpinfo() нет такой переменно окружения, как http_client_ip

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

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");}
 
ну и что это в конечном итоге даст? Мы узнаем, работает ли юзер через прокси или нет? Но ведь он может работать и через нормальный прокси, не публичный

на моем примере получилось вот что (я работаю из офиса по выделенной линии с трансляцией адреса, один ип на весь офис): мой ip определила только $REMOTE_ADDR
 
2sergo
Извини, вру безбожно.. :о( Действительно, при чем тут ftp.. мы же про прокси говорим.. Извини еще раз..
 
hawk
бывает :))) и как это я, еще, лопух, заметил почти сразу :)
 
Я вернулся.

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

скрипт открывает соединение через прокси из моей базы (допустим, берет каждый 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 -

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

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

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