Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.05.2015, 18:45   #1
oneill69
Новичок
Джуниор
 
Регистрация: 25.05.2015
Сообщений: 1
По умолчанию Клиент для сайта

Привет, пишу клиент для сайта freebitco.in. Авторизацию уже написал + вывод баланса. Но с капчей возникли проблемы. Не понимаю как какие данные отправлять на сайт. Объясните пожалуйста.

Листинг кода авторизации:
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections.Specialized;
using System.Net;
using System.IO;

namespace ConsoleApplication2
{
    public class Client : WebClient
    {
        private readonly CookieContainer cookieContainer = new CookieContainer();
        private Uri baseUri;
        
        public Client() : base()
        {
            baseUri = new Uri("https://freebitco.in/");
            BaseAddress = baseUri.AbsoluteUri;
        }

        protected override WebRequest GetWebRequest(Uri address)
        {
            var request = (HttpWebRequest)base.GetWebRequest(address);
            request.CookieContainer = cookieContainer;
            return request;
        }

        public void Authorize(string login, string password)
        {
            string HTML_code, balanse_s = "";
            var token = GetCSRFToken();
            Double balanse_d = 0;
            int indexOfSubstring = -1;

            cookieContainer.Add(baseUri, new Cookie("have_account", "1"));

            var fields = new NameValueCollection();
            fields.Add("csrf_token", token);
            fields.Add("op", "login");
            fields.Add("btc_address", login);
            fields.Add("password", password);

            var resultBytes = UploadValues("/", fields);
            var resultArray = Encoding.GetString(resultBytes).Split(':');

            cookieContainer.Add(baseUri, new Cookie("btc_address", resultArray[1]));
            cookieContainer.Add(baseUri, new Cookie("password", resultArray[2]));
            HTML_code = this.DownloadString("https://freebitco.in/");
            indexOfSubstring = HTML_code.LastIndexOf("balance2");
            if (indexOfSubstring != -1)
            {
                for (int i = 10; i < 20; i++)
                {
                    balanse_s = balanse_s + HTML_code[indexOfSubstring + i];                    
                }
                try
                {
                    balanse_d = Convert.ToDouble(balanse_s.Replace(".", ","));
                }
                catch (InvalidCastException) {
                    Console.Write("Ошибка при получении баланса аккаунта");
                    /*Close;*/
                }
                Console.Write("Баланс аккаунта: ");
                Console.Write(balanse_d.ToString("F9"));
                Console.WriteLine();
                token = GetCSRFToken();
            }
            else { /*Close;*/}

        }

        private string GetCSRFToken()
        {
            DownloadString("/");

            var cookies = cookieContainer.GetCookies(baseUri);
            return cookies["csrf_token"].Value;
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            Client a = new Client();
            a.Authorize("1AWU5KP5dg12M7mww2PM1Wj6aPzTFiAibA", "ПАРОЛЬ");
            
            
        }
    }
}
oneill69 вне форума Ответить с цитированием
Старый 25.05.2015, 19:12   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Чего объяснить-то? Смотрите снифером (Fiddler, HttpFox, F12 в любом браузере, ...) запросы на сайте и повторяйте. Ну и для кода капчи естественно сначала надо загрузить картинку (для этого понять как ссылка на нее генерируется, если Javascript'ом, то сложнее) и либо самому вводить, либо как-то распознавать если простая, либо отправлять на всякие антигейты.

За вас вряд ли кто-то будет разбираться бесплатно.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Клиент сайта nibufep Общие вопросы Delphi 9 30.11.2014 11:40
Как добавить лайки для соц. сетей для своего сайта IT-Lopata HTML и CSS 2 09.04.2014 23:33
Как создать клиент для сайта leopard93 Помощь студентам 20 17.08.2012 11:44
Требуется специалист для создания сайта со строгой аутентификацией или зашифрованного сайта. artembar Фриланс 1 01.09.2008 16:11
Бесплатный движок для САЙТА на Java Script для Бесплатных Хостингов антигерой HTML и CSS 0 15.04.2007 21:39