Прокси взять из списка, чекнуть, назначить, положить в конец списка. Готовый сниппет. Proxy С# v.2

  • Автор темы Автор темы Mikhail B.
  • Дата начала Дата начала
Ок, попробую разобраться
 
В данный момент использую такой сниппет.

C#:
Развернуть Свернуть Копировать
if (project.Variables["TurnProxy"].Value == "True" )
{
// проверяем включены-ли прокси или нет.
IZennoList proxyList = project.Lists["Proxy"]; //Получаем указатель на лист с проксями
int count = 100; // количество неудачных проверок подряд
string protocol = "";
if (project.Variables["Protocol"].Value == "") //(пустая переменная = http://)
project.Variables["Protocol"].Value = "http";
protocol = project.Variables["Protocol"].Value + "://"; // из переменной, в переменной значение socks5:// или http:// (пустая переменная = http://)

  for (int i = 0; i < count; i++)
  {
   if (proxyList.Count == 0)
   break;
  
string proxy = string.Empty;
lock (SyncObjects.ListSyncer)
{
   proxy = proxyList[0];
   proxyList.RemoveAt(0);
}
  
  
   var content = ZennoPoster.HttpGet(project.Variables["CHECK_ADRESS"].Value, // CHECK_ADRESS - url для проверки
          protocol + proxy,
          "UTF-8",
          ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody,
          15000);

   project.Variables["debug"].Value = content;
   if (!Regex.Match(content, "^$|/blocked|заблокирован|407 Proxy").Success)
   // ""- если ответ пустой, && - или, содержит blocked в заголовках или ответе, то прокси не подходит
   {
    lock (SyncObjects.ListSyncer)
{
      proxyList.Add(proxy); // записываем живую проксю в конец списка*
}
      instance.SetProxy(protocol + proxy); // назначаем прокси в проект
      project.Variables["proxy"].Value = protocol + proxy; // назначем прокси в переменную
      return proxy; // возвращаем в ответе снипета прокси
   }
lock (SyncObjects.ListSyncer)
{
   //  proxyList.Add(proxy); // записываем проксю в конец списка в любом случае (предыдущее за комментировать!)*
}
   project.SendWarningToLog(proxy+" Прокся плохая,чекаю ещё!");  // если прокся плохая пишем,что она плохая.
  }

  throw new Exception("Плохие прокси!");//Если израсходовали все попытки подключения , то выходим из блока c# с таким сообщением.
}
Авто орпределение протокола не получилось сделать?
 
Нет возможности прикрутить?, есть много сайтов, где есть возможность парсить бесплатно.
у меня знаний нет в C#, были бы знания прикрутил бы.
 
Нет возможности прикрутить?, есть много сайтов, где есть возможность парсить бесплатно.
у меня знаний нет в C#, были бы знания прикрутил бы.
Скорей нет желания заниматся. т.к. писать на шарпе это тяжело для меня. А так думаю можно было бы сделать двойную проверку на HTTP и SOCKS5 и уже назначать прокси которая успешно прошла по одному из протоколов.
 
Скорей нет желания заниматся. т.к. писать на шарпе это тяжело для меня. А так думаю можно было бы сделать двойную проверку на HTTP и SOCKS5 и уже назначать прокси которая успешно прошла по одному из протоколов.
Как то так. ))
72462
 
  • Спасибо
Реакции: Mikhail B. и Roman48
Скорей нет желания заниматся. т.к. писать на шарпе это тяжело для меня. А так думаю можно было бы сделать двойную проверку на HTTP и SOCKS5 и уже назначать прокси которая успешно прошла по одному из протоколов.
Можешь подсказать, как это в шаблоне сделать, определить протокол?
 
  • Спасибо
Реакции: Roman48
Ну наводку я дал, дальше немного потрудиться придется.
Это я понял, спасибо большее, и сделать смогу, не могу понять куда запрос делать? Или просто запрос на SOCKS4,SOCKS5, HTTP, HTTPS и что ответит тот протокол и есть, бесплатные прокси бывают (чаще всего) через раз, работают, типа, сейчас сделал запрос, ответа нет, а через 20 секунд, ответ есть. Или какой-то другой запрос?
 
Это я понял, спасибо большее, и сделать смогу, не могу понять куда запрос делать? Или просто запрос на SOCKS4,SOCKS5, HTTP, HTTPS и что ответит тот протокол и есть, бесплатные прокси бывают (чаще всего) через раз, работают, типа, сейчас сделал запрос, ответа нет, а через 20 секунд, ответ есть. Или какой-то другой запрос?
Ну делай 3 проверки. Нафиг прокси которое в отваливаются каждые 20 сек)
 
Я тут беру, hidemy.name/ru/proxy-list/?maxtime=2000&type=4#list сейчас сокс 4 выбираю, хотелось бы все парсить и больше сайтов добавить, но под каждый сайт шаблон пилить, это не универсально, сниппет было бы самый то что надо.
Придется сделать проверку, как посоветовали.
 
полезный шаблончик. а как сделать чтобы проверял прокси сразу на два сайта?
 
полезный шаблончик. а как сделать чтобы проверял прокси сразу на два сайта?
Думаю надо добавить еще if и туда второй запрос. Пока приостановил изучение шарпа, а так подправил бы. Сейчас пользуюсь версией с альтернативным методом запроса, метод в этом коде устарел.
 

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