PDA

Просмотр полной версии : Curl


incognito
28.06.2006, 12:38
раньше я использовал curl но сейчас меня обнаружили!
и в куках пишет This file was generated by libcurl!
что я делаю не так!!!

OFF1genny_su1c1D
28.06.2006, 13:07
На сколько я знаю curl это качалка для nix-ов... Причем здесь куки и то что тебя "обнаружили"(кстати кто?)? Наверное не только я чего-то в твоей мессаге не понял. Поясни если не трудно.

incognito
28.06.2006, 13:17
я про библиотеку под php
сейчас меня определяют то есть что я загружаю страницу спомощью curl!

blackybr
28.06.2006, 13:21
передавай хидер и все такое.. что может быть определено как буто ты сидишь под браузером.. тут все можш прочитать http://ru.php.net/manual/ru/ref.curl.php

incognito
28.06.2006, 13:25
$url="http://sait.ru/cat/1/";
$ch = curl_init ($url);
$header[] = "GET /cat/1/ HTTP/1.1";
$header[] = "Accept: */*";
$header[] = "Referer: http://www.ya.ru";
$header[] = "Accept-Language: ru";
$header[] = "Accept-Encoding: gzip, deflate";
$header[] = "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon)";
$header[] = "Host: sait.ru";
$header[] = "Connection: Keep-Alive";

все равно не работает

blackybr
28.06.2006, 13:31
может дело в куках - т.е. тебе нужно еще добавить возможность ставить сайтом печенье?

incognito
28.06.2006, 13:36
сделал вот что в куки записывает
# Netscape HTTP Cookie File
# http://www.netscape.com/newsref/std/cookie_spec.html
# This file was generated by libcurl! Edit at your own risk.

sait.ru FALSE / FALSE 0 PHPSESSID 75e81c126a718f157bf92c7cdcf8e29b

incognito
28.06.2006, 14:11
профи по curl отзовитесь

fucker"ok
28.06.2006, 15:46
юзай сокеты. Все профи пишут через сокеты =) (или почти все)

incognito
28.06.2006, 16:32
а curl разве
не через сокеты пашет?

nerezus
28.06.2006, 16:39
юзай сокеты. Все профи пишут через сокеты =) (или почти все) бред.

nerezus
28.06.2006, 16:40
юзай сокеты. Все профи пишут через сокеты =) (или почти все) может еще все профи пишут свою ос?

fucker"ok
28.06.2006, 17:07
Я к тому свожу, что если бы топикстартер писал через сокеты, то никаких "This file was generated by libcurl" он бы не получал, ибо глубже бы знал "как это работает".
Темболее подобная тема (формирование запросов) уже нираз подымалась в этом форуме.

В своё время я тоже пользовался curl, до тех пор пока не сталкнулся с проблемой, которую через curl решить нельзя. Потратил несколько часов на изучение http запросов. Зато теперь радости полные штаны.

incognito
28.06.2006, 17:09
может подкините ссылок на доки по http запросам

fucker"ok
28.06.2006, 17:30
Это пример запроса на CURL:
http://forum.antichat.ru/showthread.php?t=5795
(кстати, в доказательство, что я тоже CURL пользовался =) )

Пример Post Get через сокеты.

function Get($server,$url,$cookie=null)
{
$q="GET $url HTTP/1.0\r\n";
$q.="Host: $server\r\n";
$q.="Cookie: $cookie\r\n";
$s=fsockopen($server,80);
fputs($s,$q);
while (!feof($s)) $page.=fgets($s);
fclose($s);
return $page;

function Post($server,$url,$post,$cookie=null)
{
$q="POST $url HTTP/1.1\r\n".
"Host: $server\r\n".
"User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\n".
'Accept:text/html, image/jpeg, image/png, text/*, image/*, */*'."\r\n".
"Accept-Encoding: x-gzip, x-deflate, gzip\r\n".
"Accept-Charset: windows-1251, utf-8;q=0.5, *; q=0.5\r\n".
"Accept-Language:ru, en\r\n".
"Keep-Alive: 300\r\n".
"Proxy-Connection: keep-alive\r\n".
"Cookie: $cookie \r\n"
"Referer: $server \r\n".
//
"Content-Type: application/x-www-form-urlencoded\r\n".
"Content-Length: ".strlen($post)."\r\n".
"\r\n".
"$post\r\n";
$s=fsockopen($server,80);
fputs($s,$q);
while (!feof($s)) $page.=fgets($s);
fclose($s);
return $page;
}


http://lib.ru/WEBMASTER/rfc2068/
А вообще, для чистоты эксперемента, совутую научится пользоватся снифером.

nerezus
28.06.2006, 17:37
http://phpclub.ru/detail/article/http_request

P.S. никонда с курлом не работал. Надо учиться...

fucker"ok
28.06.2006, 17:42
никонда с курлом не работал. Надо учиться...
А мне -4 сделал =]

а curl разве
не через сокеты пашет?
Через них конечно. Всё дело в том, что когда ТЫ пишишь через сокеты, то запрос формируешь ТЫ. А в случае Curl ты только задаёшь переменные, а curl может вставить например свой юзер-агент или ещё что-нибудь...

incognito
28.06.2006, 17:51
а сокеты поддерживают редирект

nerezus
28.06.2006, 17:53
А мне -4 сделал =] я знаю, что я поступал глупо(правда тогда максимум, что было у меня - бесплатный хостинг). А вот ты это и советуешь вместо правильного решения.

fucker"ok
28.06.2006, 17:57
а сокеты поддерживают редирект
Пять =)
Нет, сокеты не могут поддерживать редирект, потому-что сокеты не только для http запросов. Сокеты посылают\принимают. В этом их задача.
Чтобы был редирект, тебе прийдётся анализировать полученный хедер, ну и дальше.... =)

incognito
28.06.2006, 19:07
расскажите как

fucker"ok
28.06.2006, 19:15
Опиши свою задачу подробно плиз. Как ты себе представляешь ход работы твоей программа. Чем сможем поможем =)
Укажи так же страницу, которую ты запрашиваешь, на которой есть редирект. Ведь редирект можно сделать разными способами: хедер, мета, жабаскрипт...

guest3297
30.06.2006, 03:10
вообщето да...
ps все сетевые приложения в каком то роде работают через сокеты.

SMiX
30.06.2006, 09:18
А мне -4 сделал =]


Через них конечно. Всё дело в том, что когда ТЫ пишишь через сокеты, то запрос формируешь ТЫ. А в случае Curl ты только задаёшь переменные, а curl может вставить например свой юзер-агент или ещё что-нибудь...
Все хеадеры можно редактировать. В том числе и юзер-эджент. К тому же курл поддерживает автоматический редирект, если его через хеадер посылают, скоро будет(если уже не реализовали, недавно видел на php.net/curl обещание +)) поддержка сессий.
Юзать ли curl или сокеты - тут нужно решать для конкретного случая отдельно...

ZaCo
30.06.2006, 11:17
опять стеб мне кажется=/ харе над ачатом издеваться.

incognito
30.06.2006, 14:47
что скажите про
CURLOPT_AUTOREFERER
CURLOPT_COOKIESESSION на
http://ru.php.net/curl

SMiX
30.06.2006, 17:14
опять стеб мне кажется=/ харе над ачатом издеваться.
Тебе кажется =)