Имя: Пароль:
1C
1С v8
Использование прокси-листов в 1С
,
0 KoksVic79
 
07.05.15
14:45
Есть 10 рабочих прокси. Как заставить 1с работать через эти прокси?
1 ДенисЧ
 
07.05.15
14:45
1с использует прокси из системных настроек. их меняй
Вот только зачем тебе это надо?
2 KoksVic79
 
07.05.15
14:50
Нужно для парсинга. А кроме как вручную менять в системных настройках есть варианты?
3 Лефмихалыч
 
07.05.15
14:59
Попытка нарисовать на 1С бота для ДДОС-атак, детектед
4 KoksVic79
 
07.05.15
15:12
никаких ДДОС-атак только получение информации
5 AquaKosh
 
07.05.15
15:14
(0) Кури
Win xp/2003: proxycfg /?
Win 7/2008: netsh winhttp /?
6 KoksVic79
 
07.05.15
15:23
(5)Первое, что скурил
через netsh winhttp set proxy "адрес:порт" установил прокси

href = Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
href.Option(2, "Windows-1251");
href.open("GET", "http://ya.ru";, Ложь);
href.send()

Валится на Send() с ошибкой "Произошла исключительная ситуация (WinHttp.WinHttpRequest): Время ожидания операции истекло"
7 vde69
 
07.05.15
15:26
порт мапинг не пойдет?
8 MadHead
 
07.05.15
15:29
9 MadHead
 
07.05.15
15:31
если используется http соединение, то там можн оявно указать настройки прокси
10 AquaKosh
 
07.05.15
15:44
(6) Раз через cmd netsh winhttp установил прокси, то вызывать в коде WinHttpReq.SetProxy НЕ надо.
11 AquaKosh
 
07.05.15
15:45
(6) WinHttpReq = href
12 AquaKosh
 
07.05.15
15:47
(6) В IE в настройках сети стоит флаг "Автоматическое определение параметров"? Снять!
13 KoksVic79
 
07.05.15
15:52
(12)Флаг убран
(10)SetProxy не использую
результат: - Валится на Send() с ошибкой "Произошла исключительная ситуация (WinHttp.WinHttpRequest): Время ожидания операции истекло"
14 KoksVic79
 
07.05.15
15:53
Сейчас пробую через HTTPСоединение, но вряд ли взлетит
15 Гёдза
 
07.05.15
15:55
в каком то конфиге можно прокси указать
16 Гёдза
 
07.05.15
15:55
но если программно, там вообще можно указывать прокси непосредственно
17 KoksVic79
 
07.05.15
16:03
(16)А можно поподробнее?
18 Сниф
 
07.05.15
16:07
Скрипт=Новый COMОбъект("MSScriptControl.ScriptControl");
    Скрипт.language="javascript";

    ХТТПЗапрос = Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
    Скрипт.AddObject("ХТТПЗапрос",ХТТПЗапрос);
    Скрипт.Eval("ХТТПЗапрос.Option(2)=1251");
    ХТТПЗапрос.Option(0,"Windows-1251");
    ХТТПЗапрос.SetTimeouts(3000, 3000, 3000, 3000);

    ХТТПЗапрос.SetProxy(2,"93.95.102.57:3131");

    ХТТПЗапрос.Open("GET", УРЛ, 0);
    ХТТПЗапрос.SetRequestHeader("Accept-Language", "ru");
    ХТТПЗапрос.SetRequestHeader("Accept-Charset", "Windows-1251");
    ХТТПЗапрос.SetRequestHeader("Content-Language", "ru");
    ХТТПЗапрос.SetRequestHeader("Content-Charset", "Windows-1251");
    ХТТПЗапрос.SetRequestHeader("Content-Encoding", "gzip, deflate");
    ХТТПЗапрос.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=Windows-1251");
    ХТТПЗапрос.SetRequestHeader("CACHE_CONTROL", "no-cache");
    ХТТПЗапрос.SetRequestHeader("CONNECTION", "Keep-Alive");
    ХТТПЗапрос.SetRequestHeader("USER_AGENT", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)");
    ХТТПЗапрос.SetAutoLogonPolicy(0);
    //логин и пароль прокси
    ХТТПЗапрос.SetCredentials("login","password",1);
    
    Попытка
        ХТТПЗапрос.Send();    
    Исключение
        Возврат Ложь;
    КонецПопытки;
    
    к=ТекущаяУниверсальнаяДатаВМиллисекундах();
    Пока ХТТПЗапрос.Status<>200 Цикл
        Если ТекущаяУниверсальнаяДатаВМиллисекундах()-к>=3000 Тогда
            //Сообщить("Страница "+УРЛ+" неотвечает. Пипец!","!!!");
            Если ХТТПЗапрос.Status=407 Тогда
            
                Текст = Новый ТекстовыйДокумент;
                Текст.УстановитьТекст(ХТТПЗапрос.ResponseText());
                Текст.Записать("D:/err.html", КодировкаТекста.Системная);
            КонецЕсли;    
            Возврат Ложь;
        КонецЕсли;
    КонецЦикла;

    ResponseText = ХТТПЗапрос.ResponseText();
    Возврат ResponseText;
19 KoksVic79
 
07.05.15
17:03
(18) Прокси устанавливался через netsh/proxycfg?
Если нет логина/пароля поля оставлять пустые либо вообще не писать SetCredentials()?
20 Гёдза
 
07.05.15
17:23
а почему бы не использовать родные объекты 1с
21 Сниф
 
07.05.15
20:46
(19)Если нет логина/пароля, то вообще не писать SetCredentials() - да, вообще не писать. И, возможно, тогда и  ХТТПЗапрос.SetAutoLogonPolicy(0) лишнее.
Только где ты найдешь работоспособные прокси без логина и пароля?

(20) HTTPСоединение через прокси? у меня почему-то не сложилось (не сложилось именно через прокси с аутентификацией), пусть повезет другим с родными объектами.
22 Garykom
 
гуру
07.05.15
21:25
Парсить сайты/брутить пассы из 1С через прокси...это даже слов нету...
23 Котокот
 
07.05.15
21:30
(14) Взлетит. У меня же взлетело. Цены с сайтов конкурентов качаем аж только так.
24 Котокот
 
07.05.15
21:31
(22) А что не так то?
25 Garykom
 
гуру
07.05.15
21:37
(24) да как бы на этот случай есть хорошие китайские абузоустойчивые анонимные хостинги...
26 Котокот
 
07.05.15
21:47
(25) Зато 1С сразу в базу инфу пишет. При небольших объемах вполне работоспособно.
27 Сниф
 
08.05.15
12:34
(25) вы не могли бы вашу мысль прокомментировать?)
>Парсить сайты/брутить пассы из 1С через прокси...это даже слов нету.
>на этот случай есть хорошие китайские абузоустойчивые анонимные хостинги

Ваша идея в том, чтобы установить 1С на китайском хостинге или использовать китайский хостинг для создания своих прокси или в чем-то другом?
28 Garykom
 
гуру
08.05.15
12:36
(27) php и в 1с только результат скидывать

готового просто море
29 Сниф
 
08.05.15
12:41
(28) а пример можно? речь о Human Emulator или вы о чем-то другом?
30 Garykom
 
гуру
08.05.15
13:55
(29) пример (тупой) http://habrahabr.ru/sandbox/72702/
31 Сниф
 
08.05.15
14:18
(30) Мысль понял, спасибо за ссылку. ИМХО, всё больше сайтов защищаются от примитивного парсинга путем выкачивания HTML - чтобы не получить бан по IP(и не только по IP) нужно загружать картинки, выполнять скрипты и т.п.
32 Garykom
 
гуру
08.05.15
14:20
(31) а может просто договориться с владельцем(ами)?
и по апи все что надо делать а?
33 Сниф
 
08.05.15
14:30
(32) совершенно верное замечание, но вот, например, что ответили мне из Яндекса, когда я поинтересовался доступом к API Яндекс-Маркета:
"Сейчас мы предоставляем доступ к контентному API только крупным региональным порталам, сайтам производителей товаров и контент-ресурсам"
34 Garykom
 
гуру
08.05.15
15:10
(33) субаренда?
35 KoksVic79
 
08.05.15
15:25
Всем ОГРОМНОЕ спасибо! Особенно Сниф'у
36 Сниф
 
08.05.15
16:07
(34) наверное

(35) пожалуйста!
Программист всегда исправляет последнюю ошибку.