Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Я робин гуд нашей городской сети

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
Новенький
Отправлено: 21 Июля, 2008 - 15:45:29
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Июль 2008  


Помог: 0 раз(а)




Здраствуйте! У нас в сети не так давно появился безлимит, но, к сожалению, не все могут позволить его себе. Хочу помочь моим бедным сосетевикам )

Смысл таков: пользователь набирает в адресе http://mynetserver[dot]lan/freeinter[dot][dot][dot]url=http://ya[dot]ru и собственно смотрит инет бесплатно ) А мне без разницы, все равно безлимит. Ну, так вот, помогите мне, никак не могу заменять все href, src и т.д. на удобный вид http://mynetserver[dot]lan/freeinter[dot][dot][dot]url=http://ya[dot]ru

Надеюсь Вы поняли что я хочу )
 
 Top
EuGen Администратор
Отправлено: 21 Июля, 2008 - 16:59:03
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




А при чем тут php? Зачем вообще придумывать прокси-сервер самому, если есть отличные реализации?
Советую посмотреть:
http://www[dot]squid-cache[dot]org/


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
stimul
Отправлено: 21 Июля, 2008 - 17:54:07
Post Id


Новичок


Покинул форум
Сообщений всего: 16
Дата рег-ции: Июль 2008  


Помог: 0 раз(а)




Чувак поставь себе UserGate и не мучайся
 
 Top
EuGen Администратор
Отправлено: 21 Июля, 2008 - 20:21:58
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Не забудьте так же настроить Ваш маршрутизатор так, чтобы он прибавлял +1 к TTL проходящих пакетов, иначе за это "робингудство" провайдер не похвалит.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Новенький
Отправлено: 22 Июля, 2008 - 03:36:16
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Июль 2008  


Помог: 0 раз(а)




Мне бы на PHP...
 
 Top
kamikadze
Отправлено: 22 Июля, 2008 - 09:35:17
Post Id



Склонен к самоубийству


Покинул форум
Сообщений всего: 391
Дата рег-ции: Янв. 2007  


Помог: 0 раз(а)




Только с картинками напряг, а так все в порядке, читать можно. И ссылки тоже лагают, потому лучше по странице пройтись регулярами
 
 Top
Новенький
Отправлено: 22 Июля, 2008 - 10:15:58
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Июль 2008  


Помог: 0 раз(а)




Я сделал по другому:

PHP:
скопировать код в буфер обмена
  1. $filecontent = @file_get_contents($url);
  2.  
  3.     $filecontent = preg_replace("!<a.*?href=\"http://([^ \"'>]+)\"?'?.*?>(.*?)</a>!is","<a href=\"http://10.2.27.18/free/?freeurl=http://\\1\">\\2</a>",$filecontent);
  4.     $filecontent = preg_replace("!<a.*?href=\"/([^ \"'>]+)\"?'?.*?>(.*?)</a>!is","<a href=\"http://10.2.27.18/free/?freeurl=$domen\\1\">\\2</a>",$filecontent);
  5.     $filecontent = preg_replace("!<link.*?href=\"/([^ \"'>]+)\"?'?.*?>!is","<link rel=\"stylesheet\" href=\"http://10.2.27.18/free/?freeurl=$domen\\1\">",$filecontent);
  6.     $filecontent = preg_replace("!<link.*?href=\"([^ \"'>]+)\"?'?.*?>!is","<link rel=\"stylesheet\" href=\"http://10.2.27.18/free/?freeurl=$domen/\\1\">",$filecontent);
  7.     $filecontent = preg_replace("!background=\"/([^ \"'>]+)\"!is","background=\"http://10.2.27.18/free/?freeurl=".$domen."\\1\"",$filecontent);
  8.     $filecontent = preg_replace("!background=\"([^ \"'>]+)\"!is","background=\"http://10.2.27.18/free/?freeurl=".$domen."/\\1\"",$filecontent);
  9.     $filecontent = preg_replace("!action=\"/([^ \"'>]+)\"!is","action=\"http://10.2.27.18/free/?freeurl=".$domen."\\1\"",$filecontent);
  10.     $filecontent = preg_replace("!action=\"([^ \"'>]+)\"!is","action=\"http://10.2.27.18/free/?freeurl=".$domen."/\\1\"",$filecontent);
  11.     $filecontent = preg_replace("!src=\"/([^ \"'>]+)\"!is","src=\"http://10.2.27.18/free/?freeurl=".$domen."\\1\"",$filecontent);
  12.     $filecontent = preg_replace("!src=\"([^ \"'>]+)\"!is","src=\"http://10.2.27.18/free/?freeurl=".$domen."/\\1\"",$filecontent);
  13.     $filecontent = preg_replace("!url\(/([^ \"'>]+)\)!is","url(http://10.2.27.18/free/?freeurl=".$domen."\\1)",$filecontent);
  14.     $filecontent = preg_replace("!url\(([^ \"'>]+)\)!is","url(она стоhttp://10.2.27.18/free/?freeurl=".$domen."/\\1)",$filecontent);


Но все равно здесь не все условия оговариваются и не ввсе заменяется (

И мне нужно, чтобы не одна страница была доступна, а все которые есть на сайте. Поэтому я и заменяю ссылки, src'шки и т.д.
Т.е. была http://ya.ru/about.php, а стала http://mynetserver[dot]lan/free/?fre[dot][dot][dot]/ya[dot]ru/about.php

И картинки чтобы по аналогии

Т.е. мне нужно пробежаться по всем ссылкам, изображениям, скриптам (<script></script>), <link'ам и т.д, проверить каждую на разные условия (есть или нету протокола, есть ли адрес сайта, который посещаем, если нету то мы добавим из $_GET['freeurl']) и изменить собственно

(Отредактировано автором: 22 Июля, 2008 - 10:22:23)

 
 Top
Джур
Отправлено: 22 Июля, 2008 - 12:03:47
Post Id



Посетитель


Покинул форум
Сообщений всего: 423
Дата рег-ции: Март 2007  


Помог: 0 раз(а)




я такую штуку делал но ссылки заменял не РНР а JavaScript... ибо значительно проще...

PHP:
скопировать код в буфер обмена
  1. <?
  2. if(!isset($_GET['url'])) $_GET['url']='http://ya.ru';
  3. $x=file_get_contents($_GET['url']);
  4. echo $x;
  5. echo '<script>
  6. for(i=0;i<document.links.length;i++){
  7.  document.links[i].href="'.$_SERVER['PHP_SELF'].'?url="+escape(document.links[i].href);
  8. }
  9. </script>';

с картинками сами разберетесь, там по аналогии Закатив глазки


-----
Тамбовский каджит тебе товарищ
 
 Top
Новенький
Отправлено: 22 Июля, 2008 - 13:43:01
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Июль 2008  


Помог: 0 раз(а)




Странно, но когда в картинках заменяется SRC, то картинки попросту не появляются...

Код:
CODE (text):
скопировать код в буфер обмена
  1. <img border="0" src="http://10.2.27.10/free/?freeurl=http://10.2.27.11/01.jpg">
при этом я использую file_get_contents()
 
 Top
ПхП-ломастер
Отправлено: 22 Июля, 2008 - 16:10:07
Post Id


Новичок


Покинул форум
Сообщений всего: 51
Дата рег-ции: Июнь 2008  


Помог: 0 раз(а)

[+]


Находите все ссылки ф-ей preg_replace_callback(pattern,function,string). Собственно в функции и обрабатывайте.
 
 Top
EuGen Администратор
Отправлено: 22 Июля, 2008 - 16:49:29
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




А если хочется передать POST-параметры .. тоже include будете делать?


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
kamikadze
Отправлено: 22 Июля, 2008 - 16:56:33
Post Id



Склонен к самоубийству


Покинул форум
Сообщений всего: 391
Дата рег-ции: Янв. 2007  


Помог: 0 раз(а)




Улыбка Ну я сделал такое чудо только для чтения БАШа пару человекам у которых закончился инет, а так разве что проксю надо писать...
 
 Top
EuGen Администратор
Отправлено: 22 Июля, 2008 - 17:00:31
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Вот к тому и сводится вопрос. А зачем писать прокси-сервер если есть отличные готовые реализации?
А в скрипте всего не опишешь..
А если я хочу послушать интернет-радио? .. Потоковое видео.. Примеров - масса..


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Джур
Отправлено: 22 Июля, 2008 - 20:18:16
Post Id



Посетитель


Покинул форум
Сообщений всего: 423
Дата рег-ции: Март 2007  


Помог: 0 раз(а)




EuGen пишет:
А если я хочу послушать интернет-радио?

Да, тогда проще юзать простой прокси сервер...

Но если уж именно на РНР, можно написать скрипт который будет работать как обычный http-прокси. Тоесть слушать порт, например 8080 и обрабатывать запросы HTTP_1.0
Тогда не надо ничего лишнего. Улыбка


-----
Тамбовский каджит тебе товарищ
 
 Top
Гость
Отправлено: 26 Июля, 2008 - 00:29:20
Post Id


УДАЛЁН










Вот что, советую CGIProxy...
Да, это на Perl, а не на PHP, зато заменяет ссылки полностью: и обычные, и картинки, и в скриптах динамически (Т.е. даже если сылка не является литералом в переменной, а генерируется динамически)... И самое главное полность созраняется вид Web-страницы и работочпособность скриптов!
Плюс куча настроек и конфидециальность Cookie
Лучшего Web-проксера я не видел... Качайте: http://www[dot]jmarshall[dot]com/tools/c[dot][dot][dot]2[dot]1beta17[dot]tar[dot]gz
CGIProxy можно настроить так, чтобы он вставлял Вашу рекламу в страницы и убирал чужую
Для пущей убедительности посмотрите CGIProxy в действии (Без вставки рекламы и всяких крезаний страниц): http://cgiproxy[dot]oks71[dot]ru/ или http://cgiproxy[dot]oks71[dot]biz/ (Кстати во втором можете творить что хотите, он завтра закрывается Улыбка)

А так лучше пользоваться Не-Web проксей типа Squid или UserGate

(Отредактировано автором: 26 Июля, 2008 - 00:35:40)

 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB