ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

как залогиниться с libcurl на сайте?
  #1  
Старый 18.04.2010, 01:48
eldar85
Познающий
Регистрация: 27.08.2009
Сообщений: 82
Провел на форуме:
131097

Репутация: 5
Отправить сообщение для eldar85 с помощью ICQ
По умолчанию как залогиниться с libcurl на сайте?

столкнулся с такой проблемой, не могу залогиниться на сайте...
хочу чтобы прога сама логинелась на моей страничке, но по моему получается полная чушь...
вот код, что я делаю не так?

int main(int argc, char* argv[])
{

CURL* curl;
char url[] = "http://love.ngs.ru/login/";
char proxy[] = "92.50.163.114";
long port = 8085;
char error[200];
char referer[] = "http://love.ngs.ru/";
struct curl_httppost* post = NULL;
struct curl_httppost* last = NULL;
char postdata[] = "send=ok&l=8j4w4w4w@rambler.ru&p=8j4w4w4w&remember _me=1";

curl_global_init(CURL_GLOBAL_ALL);
curl = curl_easy_init();


curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_REFERER, referer);
curl_easy_setopt(curl, CURLOPT_PROXY, "117.102.91.6:8080");
//curl_easy_setopt(curl, CURLOPT_PROXYPORT, port);
//curl_easy_setopt(curl, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, error);
curl_easy_setopt(curl, CURLOPT_VERBOSE, 1);
curl_easy_setopt(curl, CURLOPT_HEADER, 0);
curl_easy_setopt(curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1");
// printf("\nTrying proxy [%s:%d]:\n", proxy, port);

curl_easy_setopt(curl, CURLOPT_HTTPPOST, 1);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, postdata);
curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, 54);

curl_easy_setopt(curl, CURLOPT_TIMEOUT, 7);
curl_easy_perform(curl);
// printf("Cannot perform\nError:%s\n", error);
int i;
std::cin >> i;

return 0;
}

в итоге в консоль выводиться только хедер, а html кода нету и вообще не понятно залогинелся я или нет)

Последний раз редактировалось eldar85; 18.04.2010 в 01:59..
 
Ответить с цитированием

  #2  
Старый 18.04.2010, 02:17
Dark_cracker
Познающий
Регистрация: 29.05.2009
Сообщений: 55
Провел на форуме:
807573

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

попробуй поставить это
curl_easy_setopt(curl, CURLOPT_POST, true);
перед этим
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, postdata);
типа сказать курлу что есть пост данные
 
Ответить с цитированием

  #3  
Старый 18.04.2010, 02:35
eldar85
Познающий
Регистрация: 27.08.2009
Сообщений: 82
Провел на форуме:
131097

Репутация: 5
Отправить сообщение для eldar85 с помощью ICQ
По умолчанию

попробывал так:

int main(int argc, char* argv[])
{
CURL* curl;
char url[] = "http://love.ngs.ru/login/";
char proxy[] = "92.50.163.114";
long port = 8085;
char error[200];
char referer[] = "http://love.ngs.ru/";
struct curl_httppost* post = NULL;
struct curl_httppost* last = NULL;
char postdata[] = "send=ok&l=8j4w4w4w%40rambler.ru&p=8j4w4w4w&rememb er_me=1";

curl_global_init(CURL_GLOBAL_ALL);
curl = curl_easy_init();

//curl_formadd(&post, &last, CURLFORM_COPYNAME, "method", CURLFORM_COPYCONTENTS, "post", CURLFORM_END);
// curl_formadd(&post, &last, CURLFORM_COPYNAME, "file", CURLFORM_FILE, "c:/2.jpg", CURLFORM_CONTENTTYPE, "image/jpeg", CURLFORM_END);
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_REFERER, referer);
curl_easy_setopt(curl, CURLOPT_PROXY, "117.102.91.6:8080");

curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, error);
curl_easy_setopt(curl, CURLOPT_VERBOSE, 1);
curl_easy_setopt(curl, CURLOPT_HEADER, 0);
curl_easy_setopt(curl, CURLOPT_NOBODY, 1);

curl_easy_setopt(curl, CURLOPT_COOKIEJAR, "cookie.txt");
curl_easy_setopt(curl, CURLOPT_COOKIEFILE, "cookie.txt");

curl_easy_setopt(curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1");


curl_easy_setopt(curl, CURLOPT_HTTPPOST, 1);
curl_easy_setopt(curl, CURLOPT_POST, true);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, postdata);


curl_easy_setopt(curl, CURLOPT_TIMEOUT, 10);
curl_easy_perform(curl);

int i;
std::cin >> i;

return 0;
}

и вроде все нормально))) спасибо за совет)
но я не пойму как сделать так чтобы он еще и тело сайта вывел в консоль, а то так выводит только хедер и то что прокси и рефер установлены??
и еще один вопросик, куда сохраняются куки?? я прописал cookie.txt и создал текстовой файл возле экзэшника, но там пустота)) хотелось бы посмотреть куда он их сохраняет) или он после использования сразу их стерает из файла?)

Последний раз редактировалось eldar85; 18.04.2010 в 02:43..
 
Ответить с цитированием

  #4  
Старый 18.04.2010, 02:42
eldar85
Познающий
Регистрация: 27.08.2009
Сообщений: 82
Провел на форуме:
131097

Репутация: 5
Отправить сообщение для eldar85 с помощью ICQ
По умолчанию

и вообще я все правильно с куками делаю или нет?) их так находят в коде или может чего то еще не хватает?
 
Ответить с цитированием

  #5  
Старый 18.04.2010, 02:46
Dark_cracker
Познающий
Регистрация: 29.05.2009
Сообщений: 55
Провел на форуме:
807573

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

а чё за язык используешь ?
попробуй сделать так /cookie.txt
или там полный путь от диска пропиши
 
Ответить с цитированием

  #6  
Старый 18.04.2010, 03:09
eldar85
Познающий
Регистрация: 27.08.2009
Сообщений: 82
Провел на форуме:
131097

Репутация: 5
Отправить сообщение для eldar85 с помощью ICQ
По умолчанию

на плюсах, под Qt))
 
Ответить с цитированием

  #7  
Старый 18.04.2010, 03:09
eldar85
Познающий
Регистрация: 27.08.2009
Сообщений: 82
Провел на форуме:
131097

Репутация: 5
Отправить сообщение для eldar85 с помощью ICQ
По умолчанию

а вообще в файле он должен какие нить записи оставить после выполнения программы?
 
Ответить с цитированием

  #8  
Старый 18.04.2010, 03:13
eldar85
Познающий
Регистрация: 27.08.2009
Сообщений: 82
Провел на форуме:
131097

Репутация: 5
Отправить сообщение для eldar85 с помощью ICQ
По умолчанию

блин, ну все, вывел уже не в консоль, а в GUI, теперь то точно видно что стал логиниться))) большое спасибо за помощь)))
 
Ответить с цитированием

  #9  
Старый 18.04.2010, 03:17
eldar85
Познающий
Регистрация: 27.08.2009
Сообщений: 82
Провел на форуме:
131097

Репутация: 5
Отправить сообщение для eldar85 с помощью ICQ
По умолчанию

прописал путь:
curl_easy_setopt(curl, CURLOPT_COOKIEJAR, "c:/cookie.txt");
но файл все равно пустой как не странно...
 
Ответить с цитированием

  #10  
Старый 18.04.2010, 03:20
eldar85
Познающий
Регистрация: 27.08.2009
Сообщений: 82
Провел на форуме:
131097

Репутация: 5
Отправить сообщение для eldar85 с помощью ICQ
По умолчанию

но без этих двух строчек нифига не логиниться как не странно))
curl_easy_setopt(curl, CURLOPT_COOKIEJAR, "cookie.txt");
curl_easy_setopt(curl, CURLOPT_COOKIEFILE, "cookie.txt");
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Delphi]/[Pascal] Задай вопрос, получи ответ Isis С/С++, C#, Delphi, .NET, Asm 6762 17.06.2010 21:23
FAQ по выделенным серверам †Romi4† Авторские статьи 4 31.08.2009 16:19
На PHP, как на "Новые ворота"... Mertvii-Listopad Чужие Статьи 7 18.09.2006 12:42



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ