-
Автор темы
- #1
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Решил немного отвлечься от ареха и говнокс и написать простой гайд,ибо наблюдал много случаев,когда требовался лоадер с авторизацией xenforo.
Итак,нам нужны :
- curl (
- boost (
Т.к. обычный способ get запроса и получение ответа здесь не канает,то мы будем посылать post запрос и получать response_code
Пишем строку того,что мы будем отсылать:
- out_name и out_pass - логин и пароль от форума соответственно.
Далее делаем настройку и подключение :
Код Writers :
Итак,когда у нас прошел ответ делаем простенькую проверку на response_code :
Пример работоспособности :
Итак,нам нужны :
- curl (
Пожалуйста, авторизуйтесь для просмотра ссылки.
)- boost (
Пожалуйста, авторизуйтесь для просмотра ссылки.
)Т.к. обычный способ get запроса и получение ответа здесь не канает,то мы будем посылать post запрос и получать response_code
Пишем строку того,что мы будем отсылать:
Код:
string req = ("login=") + out_name + ("®ister=0&password=") + out_pass + OBFUSCATED("&remember=0&cookie_check=0&redirect=/&_xfToken=");
Далее делаем настройку и подключение :
Код:
static char errorBuffer[CURL_ERROR_SIZE];
static string buffers;
CURL *curl = nullptr;
CURLcode result;
curl = curl_easy_init();
if (curl)
{
string req = ("login=") + out_name + ("®ister=0&password=") + out_pass + OBFUSCATED("&remember=0&cookie_check=0&redirect=/&_xfToken=");
curl_easy_setopt(curl, CURLOPT_USERAGENT, ("xen_load"));
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writer);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &buffers);
curl_easy_setopt(curl, CURLOPT_URL, ("http://yoursite.ru/login/login/"));
curl_easy_setopt(curl, CURLOPT_HEADER, 0);
curl_easy_setopt(curl, CURLOPT_POST, 1);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, req.c_str());
result = curl_easy_perform(curl);
long response_code = 0;
curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &response_code);
if (result == CURLE_OK)
{
}
}
curl_easy_cleanup(curl);
}
Код:
static int writer(char *data, size_t size, size_t nmemb, string *buffer)
{
int result = 0;
if (buffer != NULL)
{
buffer->append(data, size * nmemb);
result = size * nmemb;
}
return result;
}
Код:
auto resp = to_string(response_code);
if (resp == "303") {
//good
}else{//bad}
На этом,собственно все.
Полный листинг :
Код:
static char errorBuffer[CURL_ERROR_SIZE];
static string buffers;
CURL *curl = nullptr;
CURLcode result;
curl = curl_easy_init();
if (curl)
{
string req = ("login=") + out_name + ("®ister=0&password=") + out_pass + OBFUSCATED("&remember=0&cookie_check=0&redirect=/&_xfToken=");
curl_easy_setopt(curl, CURLOPT_USERAGENT, ("xen_load"));
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writer);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &buffers);
curl_easy_setopt(curl, CURLOPT_URL, ("http://yoursite.ru/login/login/"));
curl_easy_setopt(curl, CURLOPT_HEADER, 0);
curl_easy_setopt(curl, CURLOPT_POST, 1);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, req.c_str());
result = curl_easy_perform(curl);
long response_code = 0;
curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &response_code);
if (result == CURLE_OK)
{
auto resp = to_string(response_code);
if (resp == "303") {
//good auth
}
else {
//bad auth
}
}
}
curl_easy_cleanup(curl);
}
Последнее редактирование: