Люди, помогите! Мне нужен HTTP proxy, написанный на PHP или Perl. Если вы знаете, где достать оставьте плз ссылочку. Или помогите написать мне свой. Я уже написал простенький скрпт, но он посылает только GET запроси, да к тому же вобще не понимает субдомены (http://[B]forum[/B].antichat.ru например). Главная его задача переадресовывать GET, POST запросы. Подскажите, как открыть произвольнй порт и и считать с него данные в переменную.
Code: use Socket; $port = 2222; socket(S, PF_INET, SOCK_STREAM, 0); setsockopt(S, SOL_SOCKET, SO_REUSEADDR, 1); bind(S, sockaddr_in($port, INADDR_ANY)); listen(S, 50); while(1) { accept(X, S); unless(fork) { ...некое действие... } close X; }
PHProxy Если поисковик мне не изменяет(а такое бывает то можно качнуть тут: _"http://ice.citizenlab.org/projects/phproxy/phproxy-1.30.zip"_
сначала тебе нужно прочитать про то, как работают Proxy серверы. а сделать скрипт на PHP или перле не сложно
HTTP proxy на PHP. Ну идея простая очень. Ты посылаешь скрипту какой-то HTTP запрос он через сокет перенаправляет этот запрос на хост, который можно выдернуть скажем из твоего запроса или который ты посылаешь ему отдельной переменной. Потом скрипт возвращает тебе все что ему выдал на это удаленный хост. Идея простенькая, а вот над реализацией надо будет постораться - будет жестокий парсинг ссылок и формочек в скрипте, перед тем как он выдаст тебе ответ. Я думаю так примерно анонимайзеры работают. Кстати, может я чо недопонял в теме ?=)
Всё уже написано до нас. PHP = http://ice.citizenlab.org/projects/phproxy/#dl и cgi - http://www.jmarshall.com/tools/cgiproxy/releases/cgiproxy.2.0.1.tar.gz
http://ice.citizenlab.org/projects/phproxy/phproxy.php Вот демка их проксика... Спору нет, люди постарались. И GET и POST запросы на ура, но вот попробуй зайти куда нить, например / и вот что выдаёт : pHproxy You tried to access a restricted server. The owner of this proxy has restricted which servers it can access, presumably for security or bandwidth reasons.
Я на С делал очень просто - читаешь по строкам запрос, находишь Host: и коннектишся к нему, пересылаешься запрос, шлеш данные обратно
Не понимает субдоменов потому-что не обазначенно(или обозначенно не верно) Host, вот если был бы forum.antichat. ru с отдельным IP, тогда другое дело