Тема: PHP сокеты
Показать сообщение отдельно

  #5  
Старый 08.08.2009, 20:26
ElteRUS
Постоянный
Регистрация: 11.10.2007
Сообщений: 406
С нами: 9780227

Репутация: 1423
По умолчанию

PHP код:
$header "GET http://rambler.ru/ HTTP/1.0\r\n";
$header .= "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*\r\n";
$header .= "Accept-Language: uk\r\n";
$header .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)\r\n";
$header .= "Host: www.rambler.ru\r\n";
$header .= "Proxy-Connection: Keep-Alive\r\n\r\n";

$sckt fsockopen("www.rambler.ru",80);
fputs($sckt,$header);

while(!
feof($sckt))
{
$serv_answer fgets($sckt,2048);

if(
$s strstr($serv_answer,"ruid="))    // извлекаем переменную ruid из заголовка Set-Cookie ответа сервера
{
$ruid substr($s,5,24);
}
}

fclose($sckt);

//авторизируемся

$auth_data "domain=rambler.ru&url=7&login=".$login."&passw=".$password;
$auth_data_len strlen($auth_data);

$header "POST http://mail.rambler.ru/script/auth.cgi HTTP/1.0\r\n";
$header .= "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*\r\n";
$header .= "Referer: http://www.rambler.ru/\r\n";
$header .= "Accept-Language: uk\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Proxy-Connection: Keep-Alive\r\n";
$header .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)\r\n";
$header .= "Host: mail.rambler.ru\r\n";
$header .= "Content-Length: ".$auth_data_len."\r\n";
$header .= "Pragma: no-cache\r\n";
$header .= "Cookie: ruid=".$ruid."\r\n\r\n";
$header .= $auth_data;

$sckt fsockopen("mail.rambler.ru",80);
fputs($sckt,$header);

while(!
feof($sckt))
{
$serv_answer fgets($sckt,2048);

if(
$s strstr($serv_answer,"rsid="))           // извлекаем переменную rsid из заголовка Set-Cookie ответа сервера
{
$rsid substr($s,5,32);
}

if(
$s strstr($serv_answer,"rup="))           // извлекаем переменную rup из заголовка Set-Cookie ответа сервера
{
$rup substr($s,4,24);
}

if(
$s strstr($serv_answer,"startpage%3F")) // извлекаем урл редиректа из заголовка Location ответа сервера
{
$startpage substr($s,12,4);
}
}

fclose($sckt); 
1 сформировали пакет
2 открыли сокет
3 отправили пакет
4 получили ответ, отпарсили необходимую инфу
5 закрыли сокет
6 вернулись в пункт 1. И так по циклу сколько хочешь
 
Ответить с цитированием