- Регистрация
 - 23.12.2014
 
- Сообщения
 - 14 453
 
- Благодарностей
 - 5 474
 
- Баллы
 - 113
 
Обращаем Ваше внимание на то, что данный пользователь заблокирован.
										Не рекомендуем проводить с Mikhail B. какие-либо сделки.
									
Тут новая версия
Тут родился сниппет =)
Выражаю благодарность @nole @samsonnn @Dimionix за активное участие при его создании.
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
Краткое описание сниппета.
Берет строку прокси из списка, проверяет его, если все нормально назначает и на выбор: кладет в конец списка живую прокси (по умолчанию), кладет в конец списка любую прокси, не кладет в конец списка. (см. подробное описание 3 ,13 ,17 строка). Если прокси не активна, то берет следующую до тех пор пока не найдет рабочую или кол-во неудачных проверок превысит установленный лимит (см. подробное описание 2 строка)
Подробное описание сниппета по строкам.
1. Proxy - это название списка с прокси (регистрозависимо).
2. 10 - кол-во неудачных проверок подряд.
3. Брать строки с удалением без записи в конец списка (13 и 17 сторки должны быть закоментированны).
4. Protocol - это название перменной в прокете(регистрозависимо), которая ответсвенна за протокол должна принимать значения "socks5://" или "http://" без кавычек
5. Лочим код.
6. Цикл.
7. Выход из цикла, если список пуст и завершение ошибкой.
8. Берем первую строку из списка и назначаем прокси в переменную для запроса.
9. Удаляем строку из списка.
11. GET-запрос на сайт http://chek.zennolab.com/
12. Проверка (чек) прокси.
13. Запись рабочей прокси в конец списка (3 и 17 стоки должны быть закоментированны).
14. Назначаем прокси в проекте.
15. Возвращаем прокси (IP будет в переменной снипета).
17. Записывать все прокси в конец списка (3 и 13 строки должны быть закоментированны).
19. Вывод в лог сообшения "Ошибка" при неудачном выполнении сниппета.
								Тут родился сниппет =)
Выражаю благодарность @nole @samsonnn @Dimionix за активное участие при его создании.
			
				C#:
			
		
		
		IZennoList proxyList = project.Lists["Proxy"];
int count = 10; // количество неудачных проверок подряд
//int count = proxyList.Count; // если строки берутся с удалением БЕЗ записи в конец списка (проверяем до талого, так сказать)
string protocol = project.Variables["Protocol"].Value; // из переменной, в переменной значение socks5:// или http:// (пустая переменная = http://)
lock (SyncObjects.ListSyncer) {
  for (int i = 0; i < count; i++) {
  if (proxyList.Count == 0) break;
  string proxy = proxyList[0];
  proxyList.RemoveAt(0);
  var content = ZennoPoster.HttpGet("http://chek.zennolab.com/", protocol + proxy);
  if (content.Contains(Regex.Match(proxy, @"(\d{1,3}\.){3}\d{1,3}").Value)) {
  proxyList.Add(proxy); // записываем живую проксю в конец списка
  instance.SetProxy(protocol + proxy);
  return proxy;
  }
//  proxyList.Add(proxy); // записываем проксю в конец списка в любом случае (предыдущее закомментировать!)
  }
  throw new Exception("Ошибка!");
}
	Берет строку прокси из списка, проверяет его, если все нормально назначает и на выбор: кладет в конец списка живую прокси (по умолчанию), кладет в конец списка любую прокси, не кладет в конец списка. (см. подробное описание 3 ,13 ,17 строка). Если прокси не активна, то берет следующую до тех пор пока не найдет рабочую или кол-во неудачных проверок превысит установленный лимит (см. подробное описание 2 строка)
Подробное описание сниппета по строкам.
1. Proxy - это название списка с прокси (регистрозависимо).
2. 10 - кол-во неудачных проверок подряд.
3. Брать строки с удалением без записи в конец списка (13 и 17 сторки должны быть закоментированны).
4. Protocol - это название перменной в прокете(регистрозависимо), которая ответсвенна за протокол должна принимать значения "socks5://" или "http://" без кавычек
5. Лочим код.
6. Цикл.
7. Выход из цикла, если список пуст и завершение ошибкой.
8. Берем первую строку из списка и назначаем прокси в переменную для запроса.
9. Удаляем строку из списка.
11. GET-запрос на сайт http://chek.zennolab.com/
12. Проверка (чек) прокси.
13. Запись рабочей прокси в конец списка (3 и 17 стоки должны быть закоментированны).
14. Назначаем прокси в проекте.
15. Возвращаем прокси (IP будет в переменной снипета).
17. Записывать все прокси в конец списка (3 и 13 строки должны быть закоментированны).
19. Вывод в лог сообшения "Ошибка" при неудачном выполнении сниппета.
								
									Последнее редактирование: 
									
							
						
						
	
					



	
	