Снипет обхода защиты CloudFlare ответ 200

one

Client
Регистрация
22.09.2015
Сообщения
6 833
Благодарностей
1 275
Баллы
113
Использую на одном сайте данный снипет, не плохое решение от BAZAg, но вот незадача, сайт иногда снимает защиту и сниппет перестает работать корректно а именно, при первом запросе, при получении ответа сервера 200, снипет выходит по ошибке. Как сделать что бы в этом случае снипет выходил по Ок?

Код:
string domen = "faucet.raiblockscommunity.net";
string __cfduid = String.Empty;
string cf_clearance = String.Empty;
string get = ZennoPoster.HttpGet(
    "https://"+domen+"/form.php",
    "",
    "utf-8",
    InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody,
    30000,
    "",
    project.Profile.UserAgent,
    true,
        5,   
        new[] {
    "Accept: text/html, */*;q=0.8",   
    "Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4",
    "Accept-Encoding: gzip, deflate",   
    "Connection: keep-alive",
    "Referer: https://"+domen+"/form.php"
        }
    );

string jschlAnswer = ZennoLab.OwnCode.CloudFlare.jschlAnswer(get, domen);
string jschlVc = ZennoLab.OwnCode.CloudFlare.jschlVc(get);
string pass = ZennoLab.OwnCode.CloudFlare.pass(get);
string clearancePage = ZennoLab.OwnCode.CloudFlare.clearancePage(get);

// Первая кука
__cfduid = Regex.Match(get, @"(?<=cfduid=).*?(?=;)").Value;

System.Threading.Thread.Sleep(4000);

string response = ZennoPoster.HttpGet(
    "https://"+domen+clearancePage+"?jschl_vc="+jschlVc+"&pass="+pass+"&jschl_answer="+jschlAnswer,
    "",
    "utf-8",
    InterfacesLibrary.Enums.Http.ResponceType.HeaderOnly,
    30000,
    "__cfduid=" + __cfduid,
    project.Profile.UserAgent,
    true,
        5,   
        new[] {
    "Accept: text/html, */*;q=0.8",   
    "Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4",
    "Accept-Encoding: gzip, deflate",   
    "Connection: keep-alive",
    "Referer: https://"+domen+"/form.php"
        }
    );
// Вторая кука
cf_clearance = Regex.Match(response, @"(?<=cf_clearance=).*?(?=;)").Value;
project.SendInfoToLog(__cfduid,true);
project.SendInfoToLog(cf_clearance,true);

project.Variables["cfduid_cookie"].Value = __cfduid;
project.Variables["cf_clearance_cookie"].Value = cf_clearance;
 

Adigen

Client
Регистрация
28.07.2014
Сообщения
825
Благодарностей
653
Баллы
93
Использую на одном сайте данный снипет, не плохое решение от BAZAg, но вот незадача, сайт иногда снимает защиту и сниппет перестает работать корректно а именно, при первом запросе, при получении ответа сервера 200, снипет выходит по ошибке. Как сделать что бы в этом случае снипет выходил по Ок?

Код:
string domen = "faucet.raiblockscommunity.net";
string __cfduid = String.Empty;
string cf_clearance = String.Empty;
string get = ZennoPoster.HttpGet(
    "https://"+domen+"/form.php",
    "",
    "utf-8",
    InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody,
    30000,
    "",
    project.Profile.UserAgent,
    true,
        5,  
        new[] {
    "Accept: text/html, */*;q=0.8",  
    "Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4",
    "Accept-Encoding: gzip, deflate",  
    "Connection: keep-alive",
    "Referer: https://"+domen+"/form.php"
        }
    );

string jschlAnswer = ZennoLab.OwnCode.CloudFlare.jschlAnswer(get, domen);
string jschlVc = ZennoLab.OwnCode.CloudFlare.jschlVc(get);
string pass = ZennoLab.OwnCode.CloudFlare.pass(get);
string clearancePage = ZennoLab.OwnCode.CloudFlare.clearancePage(get);

// Первая кука
__cfduid = Regex.Match(get, @"(?<=cfduid=).*?(?=;)").Value;

System.Threading.Thread.Sleep(4000);

string response = ZennoPoster.HttpGet(
    "https://"+domen+clearancePage+"?jschl_vc="+jschlVc+"&pass="+pass+"&jschl_answer="+jschlAnswer,
    "",
    "utf-8",
    InterfacesLibrary.Enums.Http.ResponceType.HeaderOnly,
    30000,
    "__cfduid=" + __cfduid,
    project.Profile.UserAgent,
    true,
        5,  
        new[] {
    "Accept: text/html, */*;q=0.8",  
    "Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4",
    "Accept-Encoding: gzip, deflate",  
    "Connection: keep-alive",
    "Referer: https://"+domen+"/form.php"
        }
    );
// Вторая кука
cf_clearance = Regex.Match(response, @"(?<=cf_clearance=).*?(?=;)").Value;
project.SendInfoToLog(__cfduid,true);
project.SendInfoToLog(cf_clearance,true);

project.Variables["cfduid_cookie"].Value = __cfduid;
project.Variables["cf_clearance_cookie"].Value = cf_clearance;
После загрузки страницы, добавьте проверку есть на странице CloudFlare или нет, если нет выходим из снипеета.
 

one

Client
Регистрация
22.09.2015
Сообщения
6 833
Благодарностей
1 275
Баллы
113
Мне не надо загружать всю страницу. Нужно получить код ответа сервера и если после первого запроса в снипете он равен 200 выйти по зеленой ветке.
 

ares.bct

Client
Регистрация
21.06.2016
Сообщения
20
Благодарностей
21
Баллы
3
Мне не надо загружать всю страницу. Нужно получить код ответа сервера и если после первого запроса в снипете он равен 200 выйти по зеленой ветке.
После первого запроса добавить проверку на код 200:
PHP:
if (get.StartsWith("HTTP/1.1 200")) return "ok";
 
  • Спасибо
Реакции: one

one

Client
Регистрация
22.09.2015
Сообщения
6 833
Благодарностей
1 275
Баллы
113
Спасибо! То что надо!
 

sdfghjd77

Client
Регистрация
28.12.2017
Сообщения
63
Благодарностей
2
Баллы
8


Пытаюсь запустить данный снипет и он красненький(

Что я делаю не так?
 

one

Client
Регистрация
22.09.2015
Сообщения
6 833
Благодарностей
1 275
Баллы
113
Думаю не все скопировали в свой шаблон из исходного.

upload_2018-1-10_10-38-7.png
 

sdfghjd77

Client
Регистрация
28.12.2017
Сообщения
63
Благодарностей
2
Баллы
8

one

Client
Регистрация
22.09.2015
Сообщения
6 833
Благодарностей
1 275
Баллы
113
Скрин выше не видно?
 
  • Спасибо
Реакции: sdfghjd77

woober

Client
Регистрация
07.04.2015
Сообщения
211
Благодарностей
123
Баллы
43
@one, можешь, пожалуйста, скинуть где это решение от @BAZAg лежит? что-то по поиску по ключам никак найти не могу...

Твой текст в первом посте при запуске ругается на отсутствие методов
ZennoLab.OwnCode.CloudFlare.jschlAnswer(get, domen);
ZennoLab.OwnCode.CloudFlare.jschlVc(get);
ZennoLab.OwnCode.CloudFlare.pass(get);
ZennoLab.OwnCode.CloudFlare.clearancePage(get);
 

one

Client
Регистрация
22.09.2015
Сообщения
6 833
Благодарностей
1 275
Баллы
113
  • Спасибо
Реакции: woober

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)