Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Имитация браузера 
:(
    Опции темы
nepster
Дата 2.2.2011, 03:14 (ссылка)    | (голосов:5) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 300
Регистрация: 26.4.2009

Репутация: нет
Всего: нет



Задача, скажем обезопасить юзера, скажем запутать статистику или еще что, что то вроде анонимности в сети, только с подменой браузера. Следовательно задача состоит в имитации своего браузера.


Код

<?php
 
// Конектимся
$uri ="http://www.cyberforum.ru"; 
$host = "www.cyberforum.ru"; 
 
 
$Referer = '';
$User_Agent = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)';
$Accept = 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
$Accept_Language = 'ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3';
$Accept_Charset = 'windows-1251,utf-8;q=0.7,*;q=0.7';
$Content_Type = 'Content-Type: text/html; charset=iso-8859-1';
$Cookie = 'guid=A0F20A054CDB1503X1289426179';
 
 
$samo = fsockopen($host,80);
$vars = '';
        $request = '';
    $request .= "GET {$uri} HTTP/1.1\r\n";
    $request .= "Host: {$host}\r\n";
    $request .= "User-Agent: {$User_Agent}\r\n";
    $request .= "Accept: {$Accept}\r\n";
    $request .= "Accept-Language: {$Accept_Language}\r\n";
    $request .= "Accept-Charset: {$Accept_Charset}\r\n";
    $request .= "Referer: {$Referer}\r\n";
    $request .= "Cookie: {$Cookie}\r\n";
    $request .= "Content-Type: {$Content_Type}\r\n";
    $request .= "Keep-Alive: 115\r\n";
    $request .= "Accept-Encoding: gzip,deflate\r\n";
    $request .= "Connection: close\r\n\r\n";
  //$request .= "Connection: keep-alive\r\n\r\n";
 
$body = '';
fputs($samo, $request);                                    
while(!feof($samo)) $body .= fgets($samo);//считываю полученное в переменную
fclose($samo);
echo $body;
 
?>




Собственно если заходить на локальный сервер какой то, то все работает. А в данном примере ловим символы. Подскажите пожалуйста как правильно имитировать браузер?

user posted image


И еще один вопрос, если удается получить содержимое, сайта немного другим способом, то не отображаются картинки, и ссылки имеют вид мой_шифратор.ru/test.jpg, вместо sitename.ru/test.jpg
PM MAIL   Вверх
MoLeX
Дата 2.2.2011, 06:38 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



эх, вашу бы энергию да в мирное русло


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
cccr85
Дата 2.2.2011, 09:15 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 13.7.2010

Репутация: 2
Всего: 2



Он вам отдает данные в gzip. Поищите по сети как их от туда достать. 

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


$request .= "Accept-Encoding: gzip,deflate\r\n"; вот этой строчкой Вы утверждаете что понимаете алгоритмы gzip и deflate. Не утверждайте этого и получите нормальный текст. Либо будьте готовы раскодировать инфу как настоящий браузер.
PM MAIL   Вверх
nepster
Дата 2.2.2011, 18:17 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 300
Регистрация: 26.4.2009

Репутация: нет
Всего: нет



большое спасибо, осталось только 1 проблема. 

К примеру мой имитированный браузер находится по адресу test.ru  


Я захожу на сайт к примеру bot.ru через обычный браузер: 

user posted image

html код 

user posted image




===================================================

Теперь захожу через свой имитированный браузер 

user posted image


html код 

user posted image





Если скажем заходить через имитированный браузер (test.ru)   на сайт (bot.ru), то сайт думает, что test.ru и есть его домен, и получается 
что не работают ссылки, картинки и другий файлы примерно такого вида подключения (<img sr="test.jpg" alt="#" />)

Подскажите пожалуйста как это решить? 
PM MAIL   Вверх
enoff
Дата 2.2.2011, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 30.6.2010
Где: Санкт-Петербург

Репутация: 11
Всего: 13



преобразовать все адреса на странице в абсолютные.
либо от корня + <base>, либо все url привести к виду http://bot.ru/cat/subcat/image.png

Добавлено через 1 минуту и 20 секунд
и нафига скрины постить? текст не проще? или объяснение в одну строчку, что происходит? всяко понятнее будет, чем километровый пост с картинками.
PM MAIL ICQ Skype GTalk   Вверх
Dima 2015
Дата 3.2.2011, 01:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 287
Регистрация: 16.3.2008
Где: SPb

Репутация: 2
Всего: 2



Еще хочу посоветовать топик-стартеру использовать cURL. Посоветовать не просто так.

Я в свое время 1 раз раскурил как устроен HTTP и шустро писал все парсеры используя fsockopen, и очень этим гордился. Вообще это очень полезно и автор молодец что так делает - очень расширяет понимание того, как протокол устроен. Но однажды я нарвался на проблему, которую так и не смог решить, вот ее описание:
http://en.wikipedia.org/wiki/Chunked_transfer_encoding
http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.4

На деле результат был таков что при парсинге больших страниц в контент вставлялись на случайных местах 4 случайных символа которые приходилось вырезать, в общем это была жуть. Оказалось все хитро, а cURL сам с этим борется. Решить данную задачу на уровне http-запроса через fsockopen мне не удалось.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0458 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.