|
|
|
| Подскажите как лучше сделать.
Непонятно как реализовать.
Вот http заголовки общение браузера и сервера.
=====================================================================================
cmd> POST /cgi-bin/auth HTTP/1.0
cmd> Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
cmd> Referer: http://zhuki.mail.ru
cmd> Content-Type: application/x-www-form-urlencoded
cmd> User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows 98; DigExt)
cmd> Host: swa.mail.ru
cmd> Content-Length: 258
cmd> Cookie: test_cookie1=1; ; number_pasport=a%3A6%3A%7Bi%3A6%3Bi%3A9%3Bi%3A5%3Bi%3A9%3Bi%3A4%3Bi%3A9%3Bi%3A3%3Bi%3A7%3Bi%3A2%3Bi%3A3%3Bi%3A1%3Bi%3A8%3B%7D
cmd>
hdr> HTTP/1.0 302 OK
hdr> Date: Fri, 18 Jul 2008 17:35:00 GMT
hdr> Server: Apache/1.3.27 (Unix) mru_xml/0.471 gorgona/2.1 mod_jk/1.2.4 mod_ruby/1.0.7 Ruby/1.6.8 mod_mrim/0.17
hdr> Connection: close
hdr> Content-Type: text/html
hdr> Content-Length: 550
cookie> t=obLD1AAAAAAIAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAA AAAAAAAAAAAAgEvAcA; expires=Wed, 14 Jan 2009 17:35:00 GMT; path=/; domain=.mail.ru
hdr> Set-Cookie: t=obLD1AAAAAAIAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAA AAAAAAAAAAAAgEvAcA; expires=Wed, 14 Jan 2009 17:35:00 GMT; path=/; domain=.mail.ru
cookie> Mpop=1216402500:417f7b7d01790a0219050219091d031b014 86c575c4a5c0702071b0070711e43485450 4a5d424953105e5b555a491a454c:zxcasdzxc@inbox.ru:; expires=Thu, 16 Oct 2008 17:35:00 GMT; path=/; domain=.mail.ru
hdr> Set-Cookie: Mpop=1216402500:417f7b7d01790a0219050219091d031b014 86c575c4a5c0702071b0070711e43485450 4a5d424953105e5b555a491a454c:zxcasdzxc@inbox.ru:; expires=Thu, 16 Oct 2008 17:35:00 GMT; path=/; domain=.mail.ru
hdr> Location: http://win.mail.ru/cgi-bin/checkcookie?id=417f7b7d01790a0219050219091d031b014 86c575c4a5c0702071b0070711e43485450 4a5d424953105e5b555a491a454c&page=http%3A%2F%2Fzhuki.mail.ru%2Fauth_data.php%3Fauth_passed%3D1%26x%3D%2531%2536%2532%26y%3D%2531%2530%26action1%3D%256C%256F%2567%2569%256E%26FailPage%3D%2568%2574%2574%2570%253A%252F%252F%257A%2568%2575%256B%2569%252E%256D%2561%2569%256C%252E%2572%2575%252F%2561%2575%2574%2568%255F%2564%2561%2574%2561%252E%2570%2568%2570%253F%2561%2575%2574%2568%255F%2570%2561%2573%2573%2565%2564%253D%2530
cookie> mrcu=42574880D4445CDB5149C89BCD58; expires=Mon, 16 Jul 2018 17:35:00 GMT; path=/; domain=.mail.ru
hdr> Set-Cookie: mrcu=42574880D4445CDB5149C89BCD58; expires=Mon, 16 Jul 2018 17:35:00 GMT; path=/; domain=.mail.ru
hdr> Cache-Control: no-cache,no-store,must-revalidate
hdr> Pragma: no-cache
hdr> Expires: Thu, 19 Jul 2007 17:35:00 GMT
hdr> Last-Modified: Fri, 18 Jul 2008 21:35:00 GMT
cmd> GET /cgi-bin/checkcookie?id=417f7b7d01790a0219050219091d031b014 86c575c4a5c0702071b0070711e43485450 4a5d424953105e5b555a491a454c&page=http%3A%2F%2Fzhuki.mail.ru%2Fauth_data.php%3Fauth_passed%3D1%26x%3D%2531%2536%2532%26y%3D%2531%2530%26action1%3D%256C%256F%2567%2569%256E%26FailPage%3D%2568%2574%2574%2570%253A%252F%252F%257A%2568%2575%256B%2569%252E%256D%2561%2569%256C%252E%2572%2575%252F%2561%2575%2574%2568%255F%2564%2561%2574%2561%252E%2570%2568%2570%253F%2561%2575%2574%2568%255F%2570%2561%2573%2573%2565%2564%253D%2530 HTTP/1.0
cmd> Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
cmd> Referer: http://zhuki.mail.ru
cmd> User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows 98; DigExt)
cmd> Host: win.mail.ru
cmd> Cookie: test_cookie1=1; ; number_pasport=a%3A6%3A%7Bi%3A6%3Bi%3A9%3Bi%3A5%3Bi%3A9%3Bi%3A4%3Bi%3A9%3Bi%3A3%3Bi%3A7%3Bi%3A2%3Bi%3A3%3Bi%3A1%3Bi%3A8%3B%7D; t=obLD1AAAAAAIAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAA AAAAAAAAAAAAgEvAcA; Mpop=1216402500:417f7b7d01790a0219050219091d031b014 86c575c4a5c0702071b0070711e43485450 4a5d424953105e5b555a491a454c:zxcasdzxc@inbox.ru:; mrcu=42574880D4445CDB5149C89BCD58
cmd>
hdr> HTTP/1.1 302 Found
hdr> Date: Fri, 18 Jul 2008 17:35:01 GMT
hdr> Server: Apache
hdr> Location: http://zhuki.mail.ru/auth_data.php?auth_passed=1&x=%31%36%32&y=%31%30&action1=%6C%6F%67%69%6E&FailPage=%68%74%74%70%3A%2F%2F%7A%68%75%6B%69%2E%6D%61%69%6C%2E%72%75%2F%61%75%74%68%5F%64%61%74%61%2E%70%68%70%3F%61%75%74%68%5F%70%61%73%73%65%64%3D%30
hdr> Connection: close
hdr> Content-Type: text/html; charset=windows-1251
cmd> GET /auth_data.php?auth_passed=1&x=%31%36%32&y=%31%30&action1=%6C%6F%67%69%6E&FailPage=%68%74%74%70%3A%2F%2F%7A%68%75%6B%69%2E%6D%61%69%6C%2E%72%75%2F%61%75%74%68%5F%64%61%74%61%2E%70%68%70%3F%61%75%74%68%5F%70%61%73%73%65%64%3D%30 HTTP/1.0
cmd> Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
cmd> Referer: http://zhuki.mail.ru
cmd> User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows 98; DigExt)
cmd> Host: zhuki.mail.ru
cmd> Cookie: test_cookie1=1; ; number_pasport=a%3A6%3A%7Bi%3A6%3Bi%3A9%3Bi%3A5%3Bi%3A9%3Bi%3A4%3Bi%3A9%3Bi%3A3%3Bi%3A7%3Bi%3A2%3Bi%3A3%3Bi%3A1%3Bi%3A8%3B%7D; t=obLD1AAAAAAIAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAA AAAAAAAAAAAAgEvAcA; Mpop=1216402500:417f7b7d01790a0219050219091d031b014 86c575c4a5c0702071b0070711e43485450 4a5d424953105e5b555a491a454c:zxcasdzxc@inbox.ru:; mrcu=42574880D4445CDB5149C89BCD58
cmd>
hdr> HTTP/1.1 200 OK
hdr> Server: nginx/0.6.10
hdr> Date: Fri, 18 Jul 2008 17:35:01 GMT
hdr> Content-Type: text/html;charset=windows-1251
hdr> Connection: close
hdr> X-Powered-By: PHP/5.2.4_p20070914-pl2-gentoo
hdr> Expires: Mon, 26 Jul 1997 05:00:00 GMT
hdr> Last-Modified: Fri, 18 Jul 2008 17:35:01 GMT
hdr> Cache-Control: no-store, no-cache, must-revalidate
hdr> Cache-Control: post-check=0, pre-check=0
hdr> Pragma: no-cache
hdr> Vary: Accept-Encoding
hdr> Content-Length: 235
RequestDone Error = 0
StatusCode = 200
=====================================================================================
|
Собственно непонятно следующее:
1) мы отправляем набор заголовков
cmd> POST /cgi-bin/auth HTTP/1.0
cmd> Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
cmd> Referer: http://zhuki.mail.ru
cmd> Content-Type: application/x-www-form-urlencoded
cmd> User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows 98; DigExt)
cmd> Host: swa.mail.ru
cmd> Content-Length: 258
cmd> Cookie: test_cookie1=1; ; number_pasport=a%3A6%3A%7Bi%3A6%3Bi%3A9%3Bi%3A5%3Bi%3A9%3Bi%3A4%3Bi%3A9%3Bi%3A3%3Bi%3A7%3Bi%3A2%3Bi%3A3%3Bi%3A1%3Bi%3A8%3B%7D
cmd>
|
На что сервер нам отвечает:
hdr> HTTP/1.0 302 OK
hdr> Date: Fri, 18 Jul 2008 17:35:00 GMT
hdr> Server: Apache/1.3.27 (Unix) mru_xml/0.471 gorgona/2.1 mod_jk/1.2.4 mod_ruby/1.0.7 Ruby/1.6.8 mod_mrim/0.17
hdr> Connection: close
hdr> Content-Type: text/html
hdr> Content-Length: 550
cookie> t=obLD1AAAAAAIAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAA AAAAAAAAAAAAgEvAcA; expires=Wed, 14 Jan 2009 17:35:00 GMT; path=/; domain=.mail.ru
hdr> Set-Cookie: t=obLD1AAAAAAIAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAA AAAAAAAAAAAAgEvAcA; expires=Wed, 14 Jan 2009 17:35:00 GMT; path=/; domain=.mail.ru
cookie> Mpop=1216402500:417f7b7d01790a0219050219091d031b014 86c575c4a5c0702071b0070711e43485450 4a5d424953105e5b555a491a454c:zxcasdzxc@inbox.ru:; expires=Thu, 16 Oct 2008 17:35:00 GMT; path=/; domain=.mail.ru
hdr> Set-Cookie: Mpop=1216402500:417f7b7d01790a0219050219091d031b014 86c575c4a5c0702071b0070711e43485450 4a5d424953105e5b555a491a454c:zxcasdzxc@inbox.ru:; expires=Thu, 16 Oct 2008 17:35:00 GMT; path=/; domain=.mail.ru
hdr> Location: http://win.mail.ru/cgi-bin/checkcookie?id=417f7b7d01790a0219050219091d031b014 86c575c4a5c0702071b0070711e43485450 4a5d424953105e5b555a491a454c&page=http%3A%2F%2Fzhuki.mail.ru%2Fauth_data.php%3Fauth_passed%3D1%26x%3D%2531%2536%2532%26y%3D%2531%2530%26action1%3D%256C%256F%2567%2569%256E%26FailPage%3D%2568%2574%2574%2570%253A%252F%252F%257A%2568%2575%256B%2569%252E%256D%2561%2569%256C%252E%2572%2575%252F%2561%2575%2574%2568%255F%2564%2561%2574%2561%252E%2570%2568%2570%253F%2561%2575%2574%2568%255F%2570%2561%2573%2573%2565%2564%253D%2530
cookie> mrcu=42574880D4445CDB5149C89BCD58; expires=Mon, 16 Jul 2018 17:35:00 GMT; path=/; domain=.mail.ru
hdr> Set-Cookie: mrcu=42574880D4445CDB5149C89BCD58; expires=Mon, 16 Jul 2018 17:35:00 GMT; path=/; domain=.mail.ru
hdr> Cache-Control: no-cache,no-store,must-revalidate
hdr> Pragma: no-cache
hdr> Expires: Thu, 19 Jul 2007 17:35:00 GMT
hdr> Last-Modified: Fri, 18 Jul 2008 21:35:00 GMT
|
Дальше мы опять должны слать заголовки. Но как это сделать ?! Если отсылать следующие заголовки то скрипт ругается (на то что заголовки отправляются после вывода данных ... ).
В голову приходит идея отсылать заголовки с другово скрипта. Но как перейти на выполнение другово скрипта после отправки первых заголовков и получения ответа. ???
Вобщем помогите идеей реализации.
Никак непойму как такие вещи делаются. | |
|
|
|
|
|
|
|
для: zlt-nnov
(18.07.2008 в 22:09)
| | > Дальше мы опять должны слать заголовки. Но как это сделать ?!
В HTTP/1.0 - никак. | |
|
|
|
|
|
|
|
для: BinLaden
(19.07.2008 в 00:51)
| | Но как то ведь эту проблему можно решить ... .
Кто знает как можно сделать ? | |
|
|
|
|
|
|
|
для: zlt-nnov
(19.07.2008 в 08:25)
| | "Мы" - это сервер или клиент? | |
|
|
|
|
|
|
|
для: sms-send
(19.07.2008 в 08:38)
| | МЫ - они же cmd> они же локальный веб сервер (в данный момент он клиент)
ОНИ - они же hdr> - они же Сервер (Отвечают на наши запросы.) | |
|
|
|
|
|
|
|
для: zlt-nnov
(19.07.2008 в 08:25)
| | русский перевод RFC-2616 - Hypertext Transfer Protocol -- HTTP/1.1 | |
|
|
|
|
 3.5 Кб |
|
|
для: Trianon
(19.07.2008 в 12:42)
| | Прочитал.
Но всё равно не понял как мне организовать общение с сервером.
Вот что я понял ... :
Клиент отправил первый набор заголовков --------->>>> Сервер ответил
hdr> HTTP/1.0 302 OK
hdr> Date: Fri, 18 Jul 2008 17:35:00 GMT
hdr> Server: Apache/1.3.27 (Unix) mru_xml/0.471 gorgona/2.1 mod_jk/1.2.4 mod_ruby/1.0.7 Ruby/1.6.8 mod_mrim/0.17
hdr> Connection: close
hdr> Content-Type: text/html
hdr> Content-Length: 550
cookie> t=obLD1AAAAAAIAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAA AAAAAAAAAAAAgEvAcA; expires=Wed, 14 Jan 2009 17:35:00 GMT; path=/; domain=.mail.ru
hdr> Set-Cookie: t=obLD1AAAAAAIAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAA AAAAAAAAAAAAgEvAcA; expires=Wed, 14 Jan 2009 17:35:00 GMT; path=/; domain=.mail.ru
cookie> Mpop=1216402500:417f7b7d01790a0219050219091d031b014 86c575c4a5c0702071b0070711e43485450 4a5d424953105e5b555a491a454c:zxcasdzxc@inbox.ru:; expires=Thu, 16 Oct 2008 17:35:00 GMT; path=/; domain=.mail.ru
hdr> Set-Cookie: Mpop=1216402500:417f7b7d01790a0219050219091d031b014 86c575c4a5c0702071b0070711e43485450 4a5d424953105e5b555a491a454c:zxcasdzxc@inbox.ru:; expires=Thu, 16 Oct 2008 17:35:00 GMT; path=/; domain=.mail.ru
hdr> Location: http://win.mail.ru/cgi-bin/checkcookie?id=417f7b7d01790a0219050219091d031b014 86c575c4a5c0702071b0070711e43485450 4a5d424953105e5b555a491a454c&page=http%3A%2F%2Fzhuki.mail.ru%2Fauth_data.php%3Fauth_passed%3D1%26x%3D%2531%2536%2532%26y%3D%2531%2530%26action1%3D%256C%256F%2567%2569%256E%26FailPage%3D%2568%2574%2574%2570%253A%252F%252F%257A%2568%2575%256B%2569%252E%256D%2561%2569%256C%252E%2572%2575%252F%2561%2575%2574%2568%255F%2564%2561%2574%2561%252E%2570%2568%2570%253F%2561%2575%2574%2568%255F%2570%2561%2573%2573%2565%2564%253D%2530
cookie> mrcu=42574880D4445CDB5149C89BCD58; expires=Mon, 16 Jul 2018 17:35:00 GMT; path=/; domain=.mail.ru
hdr> Set-Cookie: mrcu=42574880D4445CDB5149C89BCD58; expires=Mon, 16 Jul 2018 17:35:00 GMT; path=/; domain=.mail.ru
hdr> Cache-Control: no-cache,no-store,must-revalidate
hdr> Pragma: no-cache
hdr> Expires: Thu, 19 Jul 2007 17:35:00 GMT
hdr> Last-Modified: Fri, 18 Jul 2008 21:35:00 GMT
|
hdr> HTTP/1.0 302 OK --- ОЗНАЧАЕТ что 302 Moved Temporarily (Временно перемещен)
hdr> Connection: close ---- Сервер закрывает соединение.
hdr> Location: http://win.mail.ru/cgi-bin/checkcookie?id= ...... --- переадресовывает нас ....
ВОТ .... а после этого сразу идёт следующий набор заголовков (клиента) .... а как это сделать то ? Если в том же скрипте сразу после получения заголовков ответа посылать вторые заголовки и третьи то выдаётся ошибка ...
Может быть тогда можно сразу все заголовки отправить ? (за один подход сразу все все ... ) ... хотя так не получится. (нужно же куки выдирать.)
Если кому то не составит труда посмотреть мои нароботки то буду очень признателен. Прикрепляю архив.
Может быть тогда поймёте что у меня не получается.
Может быть кто то делал что то подобное. Натолкните на нужный подход решения этой проблемы.
В итоге хочу получить веб бота для игры. (чтобы он рандомно ходил по игре .... ) | |
|
|
|
|
|
|
|
для: zlt-nnov
(19.07.2008 в 23:29)
| | для начала покажите, как Ваш скрипт отправляет первый запрос и принимает отклик на него. | |
|
|
|
|
|
|
|
для: Trianon
(19.07.2008 в 23:40)
| | Это файл с функциями:
<?php
// Библиотека функций.
function ConectToServer($host='zhuki.mail.ru', $port='80')
{
$sock = fsockopen($host, $port, $errno, $errstr);
if(!$sock)
{
echo("$errno($errstr)");
return;
}
else
{
return $sock;
}
}
function SendHeader($fp,$header)
{
if($header!="")
{
// отправляем заголовки
fputs($fp, $header);
}
else { echo("Заголовок ПУСТ!!!"); }
}
function WriteHeader($fp)
{
$text="";
$i=0;
while(!feof($fp))
{
$buff = fgets($fp,1024);
//preg_replace("!Set-Cookie:(.*)\n!","",$text);
//preg_match("!Set-Cookie:(.*)\n!",$buff,$out[$i]);
//@$cook[$i]=preg_replace("!Set-Cookie:(.*)\n!",$buff);
echo ($buff);
$text .= $buff;
}
preg_match_all('~^Set-Cookie:(.*)\\r$~m', $text, $matches);
$count = count($matches[1]);
for($i=0;$i<$count;$i++)
{
$cookis[$i]=$matches[1][$i];
}
return $cookis;
}
// Функция записывает массив кукисов в файл
function write_array_in_file($array_cookis)
{
$file = fopen("file.txt","w+");
if(!$file)
{
echo ("Ошибка открытия файла");
}
else
{
//echo("Файл открыл. Готов к записи");
fputs($file,serialize($array_cookis));
fclose($file);
}
}
//Функция читает массив кукисов из файла
function read_array_in_file($filename="file.txt")
{
$file = fopen($filename,"r");
$bufer = fread($file,filesize($filename));
$var = unserialize($bufer);
//echo("<br><br><br><br>");
foreach ($var as $index=>$value)
{
echo("$index - > $value<br>");
}
}
?>
|
А это исполняемый файл ... index.php :
<?php
include_once('library/funcs.php');
//Примерный вид заголовка:
//"GET / HTTP/1.0\r\nAccept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*\r\nUser-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows 98; DigExt)\r\nHost: ya.ru\r\n\r\n";
$header = "GET / HTTP/1.0\r\nAccept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*\r\nUser-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows 98; DigExt)\r\nHost: zhuki.mail.ru\r\n\r\n";
//НаЧиНаЕм ИсПоЛьЗоВаТь
$fp = ConectToServer();
SendHeader($fp, $header);
$cks = WriteHeader($fp);
write_array_in_file($cks);
read_array_in_file();
//Заголовок авторизации
//$header = "POST /cgi-bin/auth HTTP/1.0\r\nAccept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*\r\nReferer: http://zhuki.mail.ru\r\nContent-Type: application/x-www-form-urlencoded\r\nUser-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows 98; DigExt)\r\nHost: swa.mail.ru\r\nContent-Length: 257\r\nCookie: test_cookie1=1; ; number_pasport=a%3A6%3A%7Bi%3A6%3Bi%3A3%3Bi%3A5%3Bi%3A1%3Bi%3A4%3Bi%3A8%3Bi%3A3%3Bi%3A6%3Bi%3A2%3Bi%3A1%3Bi%3A1%3Bi%3A2%3B%7D\r\n\r\n";
//SendHeader($fp,$header);
//WriteHeader($fp);
?>
|
Вот собственно и всё что пока есть ... дальше продвинуться не получается ... немогу придумать как огранизовать.
В голову приходит только передавать усправление другому скрипту который будет дальше общатьсся с сервером, потом ещё другому ... и так далее.
Вообще хочется сделать один исполняемый файл.
Сейчас перменный куки записываются в текстовый файл. Потом извлекаются и будут вставляться в заголовок.
Пока что у меня даже авторизоваться полностью не получается. | |
|
|
|
|
|
|
|
для: zlt-nnov
(20.07.2008 в 00:10)
| | Что-то я не заметил,
где именно Ваш скрипт анализирует наличие в отклике полей Location: , Connection:... да и просто состояния ответа (302),
где именно у Вас не получается продолжить взаимодействие с сервером в рамках текущего вызова скрипта. | |
|
|
|
|
|
|
|
для: zlt-nnov
(19.07.2008 в 23:29)
| | > а после этого сразу идёт следующий набор заголовков (клиента)
Ваш браузер (скорее всего MiniBrowser) просто после получения заголовка Location (это грубо говоря, на самом деле несколько позже) разрывает соединение и открывает новое. | |
|
|
|
|