|
Участник форума
Регистрация: 06.11.2006
Сообщений: 129
С нами:
10269701
Репутация:
58
|
|
Сообщение от zavra
PHP код:
<?
$method="POST";
$addr="/login.php"; //адрес относительно корня сервера,
$target="127.0.0.1"; //ip адрес сервера, или прокси сервера, через который оправить запрос
$targetport=80; //порт сервера или прокси
$postvars="op=a_login_attempt&email=zzz@mail.ru&pass=zzzzzz&expire=0";
$len=strlen($postvars);
$in=
"$method $addr HTTP/1.1\r\n".
"Host: vkontakte.ru\r\n".
"User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; ru; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2\r\n".
"Accept: */*\r\n".
"Accept-Language: ru,en-us;q=0.7,en;q=0.3\r\n".
"Accept-Encoding: gzip,deflate\r\n".
"Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\r\n".
"Keep-Alive: 300\r\n".
"Connection: keep-alive\r\n".
"Content-Length: $len\r\n\r\n".
$postvars;
echo $in;
$socket = socket_create (AF_INET, SOCK_STREAM, 0);
$result = socket_connect ($socket, $target, $targetport);
socket_write($socket, $in, strlen($in));
$o="";
while ($out = socket_read ($socket, 2048)) {
$o.=$out;
}
echo $o;
?>
Однако при тесте показывает 404 страница хостера вместо ответа от сервера =( можно как-то проще сделать, а не через сокет?
так у вас адрес локальный, а хост в запросе порписан vkontakte.ru...
можно через cURL
PHP код:
$c = curl_init();
curl_setopt($c, CURLOPT_URL, "http://vkontakte.ru/");
curl_setopt($c, CURLOPT_REFERER, "http://vkontakte.ru/");
curl_setopt($c, CURLOPT_USERAGENT, "9.60 beta под Windows XP — Opera/9.60 (Windows NT 5.1; U; en) Presto/2.1.1");
curl_setopt($c, CURLOPT_HEADER, 1);
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
$body = curl_exec($c);
curl_close($c);
//это обычный гет
PHP код:
$c = curl_init();
curl_setopt($c, CURLOPT_URL, "http://vkontakte.ru");
curl_setopt($c, CURLOPT_REFERER, "http://vkontakte.ru");
curl_setopt($c, CURLOPT_USERAGENT, "9.60 beta под Windows XP — Opera/9.60 (Windows NT 5.1; U; en) Presto/2.1.1");
curl_setopt($c, CURLOPT_HEADER, 1);
curl_setopt($c, CURLOPT_POST, 1);
curl_setopt($c, CURLOPT_POSTFIELDS, $post);
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_COOKIE, $cookies);
$body = curl_exec($c);
curl_close($c);
//это пост
http://www.php.su/functions/?cat=curl здесь подробно описао какие ключи что значат. икак пользоваться...
PHP код:
preg_match_all('|Set-Cookie: (.*);|U', $body, $results);
$cookies = implode(';', $results[1]);
регулярка для выдерания куков из пришедших хедеров
Последний раз редактировалось RedBull@12; 02.09.2009 в 03:01..
|