Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB58.7570
BTC/USD0.0000
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 12.03.2011, 03:40   #1
arabon
Юниор
 
Аватар для arabon
 
Регистрация: 03.01.2011
Сообщений: 17
Бабло: $5885
По умолчанию C# авторегистратор

Доброго времени суток!

Я изучаю С# около недели, и мне понадобилось написать авторегистратор.
Собственно, программа состоит из двух запросов и ручного ввода каптчи, вначале get(чтобы узнать ссылку на каптчу), потом post.
Первая часть программы точно работает(get запрос), а вот с post запросом есть проблемы... Только где именно я не могу понять =(

Вот исходник:
http://zalil.ru/30654215

button click 2(get captcha) - находит id каптчи и выводит картинку на экран
button click 1(send captcha) - передает id в переменную
button click 3(registration) - отправить post запрос
arabon вне форума  
Старый 12.03.2011, 03:47   #2
super
Ебланнед
 
Регистрация: 03.06.2008
Сообщений: 3,848
Бабло: $432125
По умолчанию

вот сегодня тему создал, ты случайно не по этим книгам c# учишь http://www.gofuckbiz.com/showthread.php?t=22643
super вне форума  
Старый 12.03.2011, 03:53   #3
super
Ебланнед
 
Регистрация: 03.06.2008
Сообщений: 3,848
Бабло: $432125
По умолчанию

кстати ты сегодня набрал сообщения наверное чтобы создать эту тему, так что спрошу, а нет ли в архиве по ссылке подарка?
super вне форума  
Старый 12.03.2011, 12:31   #4
matroskin
Senior Member
 
Аватар для matroskin
 
Регистрация: 02.07.2010
Сообщений: 201
Бабло: $43565
По умолчанию

Никакого желания качать архив. Хочешь - выложи здесь свои get и post запросы.
matroskin вне форума  
Старый 12.03.2011, 14:14   #5
arabon
Юниор
 
Аватар для arabon
 
Регистрация: 03.01.2011
Сообщений: 17
Бабло: $5885
ТС -->
автор темы ТС По умолчанию

Код:
using System;
using System.IO;
using System.Net;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
using System.Windows.Forms;

namespace WindowsFormsApplication8
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        //переменные
        public string Username = string.Empty;
        public string Password = string.Empty;
        public string Email = string.Empty;
        public string Capcha = string.Empty;
        public string Id = string.Empty;
        public const string Url = "http://byethost.com/signup.php";
        public CookieContainer CookieCont = new CookieContainer();
        
        public void button2_Click(object sender, EventArgs e) // кнопка get captcha
        {
            #region GET-запрос
            var reqGet = (HttpWebRequest)WebRequest.Create(Url);
            reqGet.CookieContainer = CookieCont; //куки        
            var resp = reqGet.GetResponse();
            var stream = resp.GetResponseStream();
            var sr = new StreamReader(stream);
            var s = sr.ReadToEnd();
            const string reg = @"http\:\/\/byet\.org\/image\.php\?id=\w{30,32}";
            const string reg2 = "[a-z0-9]{32}";
            var isMatch = Regex.Match(s, reg, RegexOptions.IgnoreCase);
            var isMatchEnd = Regex.Match(isMatch.ToString(), reg2, RegexOptions.IgnoreCase);
            webBrowser1.Navigate(isMatch.ToString());
            Id = isMatchEnd.ToString();
            #endregion
        }

       public static void Params(string username, string password, string email)//генерирование некоторых параметров
        {
            var rand = new Random();
            username = "";
            for (var j = 0; j < 7; j++)
            {
                username = username + (char)rand.Next('a', 'z');
            }
            password = username;
            email = username + "@yopmail.com";
            var sw = new StreamWriter("Result.txt", false);
            sw.WriteLine(username+";"+password+";"+email+";");
            sw.Close();
        }

        public void button1_Click(object sender, EventArgs e) //присваиваем id каптчи, которую получили, для отправки в параметры
        {
            Capcha = textBox1.Text;
        }

        public void button3_Click(object sender, EventArgs e)
        {
            var myReq = (HttpWebRequest)WebRequest.Create(Url);
            myReq.CookieContainer = CookieCont; //присваиваем куки
            myReq.Method = "POST";
            myReq.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
            myReq.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.1.17) Gecko/20110121 Firefox/3.5.17 ( .NET CLR 3.5.30729; .NET4.0E)";
            myReq.Timeout = 300000;
            myReq.KeepAlive = true;
            myReq.ContentType = "application/x-www-form-urlencoded";
            myReq.Referer = "http://byethost.com/signup.php";
            

            Params(Username, Password, Email); //используем метод для генерации

            byte[] sentData = Encoding.GetEncoding(1251).GetBytes("username=" + Username + "&password=" + Password + "&email=" + Email + "&website_category=Personal&website_language=English&id=" + Id + "&number=" + Capcha + "&submit=Register");
            myReq.ContentLength = sentData.Length;

            var sendStream = myReq.GetRequestStream();
            sendStream.Write(sentData, 0, sentData.Length);
            Thread.Sleep(1000);
            sendStream.Close();
            var result = myReq.GetResponse();
            Thread.Sleep(1000);
            result.Close();

            CookieCont = null;

        }
    }
}
arabon вне форума  
Старый 12.03.2011, 14:16   #6
arabon
Юниор
 
Аватар для arabon
 
Регистрация: 03.01.2011
Сообщений: 17
Бабло: $5885
ТС -->
автор темы ТС По умолчанию

Цитата:
Сообщение от super Посмотреть сообщение
кстати ты сегодня набрал сообщения наверное чтобы создать эту тему, так что спрошу, а нет ли в архиве по ссылке подарка?
нет там подарка, если хочешь проверь на virustotal =)
arabon вне форума  
Старый 12.03.2011, 15:32   #7
matroskin
Senior Member
 
Аватар для matroskin
 
Регистрация: 02.07.2010
Сообщений: 201
Бабло: $43565
По умолчанию

1. Ты не на тот адрес шлешь пост-запрос.
Поставь Fiddler. Заполни один раз форму на сайте. В фиддлере появятся все параметры нужного запроса: адрес, куки, параметры и пр.

Потом надо будет это повторить программно.

2. Кнопка button1 лишняя. Сразу присваивай значение и отправляй запрос.

3. Проверь, чтобы в запросе всем переменным были присвоены значения. Сейчас пустые передаются.
matroskin вне форума  
Старый 12.03.2011, 15:49   #8
spamless
Senior Member
 
Регистрация: 16.07.2009
Сообщений: 939
Бабло: $152432
По умолчанию

Ты не туда шлешь POST-запрос и у тебя проблемы с генерацией параметров. Cookie вообще не нужны.

Забирай, http://paste.org.ru/?5xu9f3

А лучше купи себе ЗенноПостер, но язык не бросай всё равно)
spamless вне форума  
Старый 12.03.2011, 15:58   #9
arabon
Юниор
 
Аватар для arabon
 
Регистрация: 03.01.2011
Сообщений: 17
Бабло: $5885
ТС -->
автор темы ТС По умолчанию

1. Fiddler у меня есть.
2. кнопка не лишняя, потому что ввод каптчи ручной.
3. у всех переменных есть значения.
arabon вне форума  
Старый 12.03.2011, 16:00   #10
arabon
Юниор
 
Аватар для arabon
 
Регистрация: 03.01.2011
Сообщений: 17
Бабло: $5885
ТС -->
автор темы ТС По умолчанию

Цитата:
Сообщение от spamless Посмотреть сообщение
Ты не туда шлешь POST-запрос и у тебя проблемы с генерацией параметров. Cookie вообще не нужны.

Забирай, http://paste.org.ru/?5xu9f3

А лучше купи себе ЗенноПостер, но язык не бросай всё равно)
Спасибо, сейчас проверю
===============

Даа, все работает, огромное спасибо!
arabon вне форума  
Закрытая тема



Опции темы
Опции просмотра