![]() |
Показаны 2 сообщений на этой странице |
Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- PHP (http://netadmin.ws/forum/forumdisplay.php?forumid=6)
-- проблема с кэшированием (?)_ прокси-сканер (http://netadmin.ws/forum/showthread.php?threadid=8996)
проблема с кэшированием (?)_ прокси-сканер
Народ, у меня такая проблема. Начну издалека. Короче, я частенько тусуюсь в одном чате, где еще чаще меня банят, бывает что и по IP. Естественно, единственный выход из сложившиейся ситуации, чтобы мне опять зайти в чат-это использовать прокси-сервер. Но админ там тоже не дурак-написал скрипт, который блокирует вход пользователям, использующих прокси-сервер. Я лично этот скрипт его вживую не видел-но идею раскусил сразу. Он блокирует вход если определяет переменные окружения HTTP_X_FORWARDED_FOR и HTTP_VIA. Найти такой прокси, скрывающий эти переменные весьма проблематично, но можно. Приходится юзать большой список прокси, вводить их в браузер, а потом заходить на страницу своего сайта и в таблице с переменными окружения уже смотреть что определилось, а что нет. Короче говоря, согласитесь, это очень неудобно. И тогда я решил на PHP написать скрипт прокси-сканера. Выдавать я его тут не буду, а просто опишу суть работы. Он состоит из 2 файлов: proxy.php и env.php. Первый файл-это собственно и есть скрипт сканера, второй файл выглядит так :
<?
echo $_SERVER['REMOTE_ADDR']."|||".$_SERVER['HTTP_X_FORWARDED_FOR']."|||".$_SERVER['HTTP_VIA']."|||";
?>
Суть работы сканера. В цикле скрипт выбирает из списка сервера
и посылает HTTP запрос "GET server.com/env.php HTTP/1.1\r\nHost: server.com\r\n\r\n" (то есть чтобы прокси сервер обратился к файлу env.php и естесственно засветил там свои IP-адрес(а) и по возможности VIA ) . Потом скрипт разбивает полученный результат explode ("|||", $result); на массив $result с переменными $result[0], $result[1], $result[2] (соответственно REMOTE_ADDR, HTTP_X_FORWARDED_FOR и HTTP_VIA) и в дальнейшем уже с оформлением выводит в браузер.
Вообщем скрипт на 100% рабочий, но я заметил некоторые непонятки.
1. переменная $result[0] вместо REMOTE_ADDR выводит http хэдер и потом только IP адрес...HTTP_X_FORWARDED_FOR и HTTP_VIA выводятся нормально.Почему так ? Я конечно же могу весь этот ненужный мусор обрубить регулярными выражениями и оставить чистый IP, но во первых интересно почему так происходит, а во вторых честно говоря лень 
2. происходит непонятное кэширование. Когда в первом же прокси определяются переменные (not NULL) $result[1] и $result[2] - то в последующих прокси серверах (в которых тоже определены HTTP_X_FORWARDED_FOR и HTTP_VIA) скрипт выводит ответ первого сервера, хотя они на самом деле другие ! Сброс значений в массиве в цикле unset($result); и всякие хэдеры с pragma-no-cashe я использую, а он все равно кэширует
Не пойму в чем дело.
Люди добрве, помогите мне в чат зайти
)) Может кто знает в чем моя ошибка ?
Заранее благодарен .
__________________
ю-ху-ю-ху-ху !
"GET server.com/env.php?".md5(microtime())." HTTP/1.1\r\nHost: server.com\r\n\r\n"
RTFM mod_expires
__________________
FAQ OFF
| Формат времени GMT. Текущее время 13:19. | Показаны 2 сообщений на этой странице |
Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.