Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

C# многопотоки и bruteforce

-

Вопросы и ответы, обсуждения

- Ваши вопросы по C# только в данном разделе

Ответ
 
Опции темы
Старый 10.12.2013, 13:46   #16
 Сержант
Аватар для Yukikaze
 
Yukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядом
Регистрация: 01.10.2011
Сообщений: 128
Популярность: 5723
Сказал(а) спасибо: 25
Поблагодарили 174 раз(а) в 105 сообщениях
 
По умолчанию Re: C# многопотоки и bruteforce

NerdyCodingKid, ну если делать много запросов с 1 IP то сервер начнет возвращать 500+ ошибки
________________
Talk is cheap. Show me the code
— Linus Torvalds
  Ответить с цитированием
Старый 10.12.2013, 13:47   #17
 Разведчик
Аватар для slejpni
 
slejpni никому не известный тип
Регистрация: 01.03.2012
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: C# многопотоки и bruteforce

Цитата:
Сообщение от YukikazeПосмотреть сообщение
то есть возможность торможения из за реализации метода SendPost вы даже не рассматриваете?

кхм, функция далеко не идеальна.. уверен что ее можно оптимизироват, но не думаю что есть что-то.. что скажется критичней инвока..

Код:
public string SendPost(string url, string postData, int ajax, string cookies)
        {
            string HTML = ""; 
            string cook = "";
 
            //ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };

            if (url == "0") return "0";
            HttpWebRequest mRequest = (HttpWebRequest)HttpWebRequest.Create(url);
            //mRequest.Proxy = new WebProxy("127.0.0.1", 8888); 
            if (postData != "") { mRequest.Method = "POST"; }
            else { mRequest.Method = "GET"; }

            mRequest.Referer = url;
            mRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36";// Мою userAgent который я вытащил блогодоря httpanalyzer
            mRequest.Accept = "image/gif, image/x-xbitmap, image/jpeg,image/pjpeg, application/x-shockwave-flash,application/vnd.ms-excel,application/vnd.ms-powerpoint,application/msword";
            mRequest.Headers.Add("Accept-Language", "ru");
            if (ajax == 1)
            {
                mRequest.Headers.Add("X-Requested-With", "XMLHttpRequest");
                mRequest.ContentType = "application/json;charset=utf-8";

            }
            else
            {
               // mRequest.ContentType = "application/x-www-form-urlencoded";
            }
            mRequest.KeepAlive = false;
            mRequest.AllowAutoRedirect = false;

            if (!string.IsNullOrEmpty(cookies))
            {
                mRequest.Headers.Add(System.Net.HttpRequestHeader.Cookie, cookies);
            }

            string sQuerystring = postData;
            byte[] ByteArr = System.Text.Encoding.GetEncoding(1251).GetBytes(sQuerystring);
            try
            {
                if (postData != "")
                {
                    mRequest.ContentLength = ByteArr.Length;
                    mRequest.GetRequestStream().Write(ByteArr, 0, ByteArr.Length);
                };


                HttpWebResponse mResponse = (HttpWebResponse)mRequest.GetResponse();
                StreamReader mReader;

                mReader = new StreamReader(mResponse.GetResponseStream(), System.Text.Encoding.UTF8);

                HTML = mReader.ReadToEnd();
                cook = mResponse.Headers.ToString();
            }
            catch (Exception err)
            {
                MessageBox.Show(err.ToString() + HTML);
                return "0";
            }
            return cook + HTML;

        }
  Ответить с цитированием
Старый 10.12.2013, 13:50   #18
 Разведчик
Аватар для NerdyCodingKid
 
NerdyCodingKid на правильном путиNerdyCodingKid на правильном пути
Регистрация: 18.11.2013
Сообщений: 3
Популярность: 197
Сказал(а) спасибо: 0
Поблагодарили 10 раз(а) в 9 сообщениях
 
По умолчанию Re: C# многопотоки и bruteforce

По инвоку - может, стоит создать статический Query<Action>, в который можно было-бы пихать лямбды, которые бы уже выполнялись в диспатчере через соседний поток? Это было-бы куда шустрее.

Последний раз редактировалось NerdyCodingKid; 12.12.2013 в 21:59.
  Ответить с цитированием
Старый 10.12.2013, 13:53   #19
 Разведчик
Аватар для slejpni
 
slejpni никому не известный тип
Регистрация: 01.03.2012
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: C# многопотоки и bruteforce

Цитата:
Сообщение от warl0ckПосмотреть сообщение
[Ссылки могут видеть только зарегистрированные пользователи. ]

Мужик, я у тебя в долгу.. стояло два коннекта..
выставил 50
, кажется скорость даже превзойдёт перловку.. СПАСИБО!

Всем спасибо за ответы ребят, я даже надежду потерял..
Большое спасибо!


Добавлено через 2 минуты
Цитата:
Сообщение от NerdyCodingKidПосмотреть сообщение
По инвоку - может, стоит создать статический Query<Action>, в который можно было-бы пихать лямбы, которые бы уже выполнялись в диспатчере через соседний поток? Это было-бы куда шустрее.

Кхм, спасибо.. хорошая идея, думаю это здорово оптимизирует, сейчас перепишу..

Последний раз редактировалось slejpni; 10.12.2013 в 13:55. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 10.12.2013, 13:55   #20
 Сержант
Аватар для Yukikaze
 
Yukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядом
Регистрация: 01.10.2011
Сообщений: 128
Популярность: 5723
Сказал(а) спасибо: 25
Поблагодарили 174 раз(а) в 105 сообщениях
 
По умолчанию Re: C# многопотоки и bruteforce

если прокси не используется то лучше указать это явно
Код:
mRequest.Proxy = null;
ибо если этого не сделать то метод GetResponce начнет автоопределение прокси и остановится на прокси по умолчанию, бессмысленный и беспощадный майкрософт решил все за нас.
Из той же области что и лимит соединений - ServicePointManager.Expect100Continue, выставляем его значение в false, получаем прирост скорости в несколько мс.
________________
Talk is cheap. Show me the code
— Linus Torvalds

Последний раз редактировалось Yukikaze; 10.12.2013 в 14:00.
  Ответить с цитированием
Старый 10.12.2013, 13:55   #21
 Разведчик
Аватар для NerdyCodingKid
 
NerdyCodingKid на правильном путиNerdyCodingKid на правильном пути
Регистрация: 18.11.2013
Сообщений: 3
Популярность: 197
Сказал(а) спасибо: 0
Поблагодарили 10 раз(а) в 9 сообщениях
 
По умолчанию Re: C# многопотоки и bruteforce

Как обычно - самый простой вариант оказался самым правильным. Поделись теперь результатами - сколько запросов отправляет вариант на шарпе и на перле? Для сравнения, даже с такой реализацией.
  Ответить с цитированием
Старый 10.12.2013, 14:19   #22
 Разведчик
Аватар для slejpni
 
slejpni никому не известный тип
Регистрация: 01.03.2012
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: C# многопотоки и bruteforce

Цитата:
Сообщение от NerdyCodingKidПосмотреть сообщение
Как обычно - самый простой вариант оказался самым правильным. Поделись теперь результатами - сколько запросов отправляет вариант на шарпе и на перле? Для сравнения, даже с такой реализацией.

C# справился с задачей за 130 секунд
Perl за 140 секунд

Да и с учётом того, что Perl вылетает на потоках > 20 ( такая хрень только на win тачках )
C# даёт значительную фору..

Спасибо ещё раз вам парни..

Добавлено через 4 минуты
Цитата:
Сообщение от YukikazeПосмотреть сообщение
ServicePointManager.Expect100Continue

Гут, сенкс.. поставил =)

Последний раз редактировалось slejpni; 10.12.2013 в 14:24. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 10.12.2013, 14:24   #23
 Старший сержант
Аватар для Sinyss
 
Sinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака Норриса
Регистрация: 29.07.2011
Сообщений: 197
Популярность: 8989
Сказал(а) спасибо: 45
Поблагодарили 175 раз(а) в 139 сообщениях
Отправить сообщение для Sinyss с помощью Skype™
 
По умолчанию Re: C# многопотоки и bruteforce

Цитата:
Сообщение от NerdyCodingKidПосмотреть сообщение
Э...Т.е., тащемта, например, я немогу зайти одновременно в двух вкладках на одну страницу в браузере, например?

Ну допустим да, порталы то разные бывают...
  Ответить с цитированием
Старый 10.12.2013, 14:26   #24
 Разведчик
Аватар для NerdyCodingKid
 
NerdyCodingKid на правильном путиNerdyCodingKid на правильном пути
Регистрация: 18.11.2013
Сообщений: 3
Популярность: 197
Сказал(а) спасибо: 0
Поблагодарили 10 раз(а) в 9 сообщениях
 
По умолчанию Re: C# многопотоки и bruteforce

Цитата:
Сообщение от SinyssПосмотреть сообщение
Ну допустим да, порталы то разные бывают...

Ога
И на ютубе один ролик не включить в двух вкладках, да?
p.s. Да и в конце концов, попробуй два TCPClient'а кинуть на localhost.

Последний раз редактировалось NerdyCodingKid; 10.12.2013 в 14:39.
  Ответить с цитированием
Старый 10.12.2013, 17:09   #25
Читер-спонсор
 Рыцарь-защитник
Аватар для Nickitee
 
Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(
Регистрация: 28.08.2009
Сообщений: 603
Популярность: 19129
Золото Zhyk.Ru: 500
Сказал(а) спасибо: 84
Поблагодарили 602 раз(а) в 321 сообщениях
 
По умолчанию Re: C# многопотоки и bruteforce

Хочу сказать что можно использовать массив, а индекс инкрементить через Interlocked.
Там есть функция атомарного инкремента, тестировал на 500 потоках, ни один не выдал повтора/ошибки, а если использовать lock(object){code} - возможны дубли и exception-ы.
________________
We are Ducks. We are birds. We like bread. We cryack. Cryack.
  Ответить с цитированием
Старый 10.12.2013, 17:38   #26
 Старший сержант
Аватар для Sinyss
 
Sinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака Норриса
Регистрация: 29.07.2011
Сообщений: 197
Популярность: 8989
Сказал(а) спасибо: 45
Поблагодарили 175 раз(а) в 139 сообщениях
Отправить сообщение для Sinyss с помощью Skype™
 
По умолчанию Re: C# многопотоки и bruteforce

Цитата:
Сообщение от NickiteeПосмотреть сообщение
а если использовать lock(object){code} - возможны дубли и exception-ы.

Невозможны...
  Ответить с цитированием
Старый 10.12.2013, 19:37   #27
Читер-спонсор
 Рыцарь-защитник
Аватар для Nickitee
 
Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(
Регистрация: 28.08.2009
Сообщений: 603
Популярность: 19129
Золото Zhyk.Ru: 500
Сказал(а) спасибо: 84
Поблагодарили 602 раз(а) в 321 сообщениях
 
По умолчанию Re: C# многопотоки и bruteforce

Цитата:
Сообщение от SinyssПосмотреть сообщение
Невозможны...

Возможны, ещё и как возможны.
А exception-ы раз в 1-2 часа только так летят.
________________
We are Ducks. We are birds. We like bread. We cryack. Cryack.
  Ответить с цитированием
Старый 10.12.2013, 19:39   #28
 Старший сержант
Аватар для Sinyss
 
Sinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака Норриса
Регистрация: 29.07.2011
Сообщений: 197
Популярность: 8989
Сказал(а) спасибо: 45
Поблагодарили 175 раз(а) в 139 сообщениях
Отправить сообщение для Sinyss с помощью Skype™
 
По умолчанию Re: C# многопотоки и bruteforce

Цитата:
Сообщение от NickiteeПосмотреть сообщение
Возможны, ещё и как возможны.
А exception-ы раз в 1-2 часа только так летят.

И какие же? Готов поспорить это потому что ты его не правильно используешь )
  Ответить с цитированием
Старый 10.12.2013, 21:57   #29
 Разведчик
Аватар для NerdyCodingKid
 
NerdyCodingKid на правильном путиNerdyCodingKid на правильном пути
Регистрация: 18.11.2013
Сообщений: 3
Популярность: 197
Сказал(а) спасибо: 0
Поблагодарили 10 раз(а) в 9 сообщениях
 
По умолчанию Re: C# многопотоки и bruteforce

Мне тоже интересно что за исключения может выдавать lock.
  Ответить с цитированием
Старый 10.12.2013, 23:31   #30
 Старший сержант
Аватар для Sinyss
 
Sinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака Норриса
Регистрация: 29.07.2011
Сообщений: 197
Популярность: 8989
Сказал(а) спасибо: 45
Поблагодарили 175 раз(а) в 139 сообщениях
Отправить сообщение для Sinyss с помощью Skype™
 
По умолчанию Re: C# многопотоки и bruteforce

Цитата:
Сообщение от NerdyCodingKidПосмотреть сообщение
Мне тоже интересно что за исключения может выдавать lock.

или инкремент инта...
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Помогите!] Многопоточность =PaLeTiZaToR= Вопросы и ответы, обсуждения 0 09.10.2012 22:03
[Помогите!] Многопоточность! anonops Вопросы и ответы, обсуждения 7 25.04.2012 21:39
[Помогите!] Многопоточность =PaLeTiZaToR= Вопросы и ответы, обсуждения 2 08.01.2012 20:23

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 18:54.

Пишите нам: forum@zhyk.ru
Copyright © 2025 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net