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

бот

-

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

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

Ответ
 
Опции темы
Старый 04.12.2013, 19:25   #1
 Разведчик
Аватар для sachok3
 
sachok3 никому не известный тип
Регистрация: 29.03.2013
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию бот

взялся за бот для Осады Вконткте [Ссылки могут видеть только зарегистрированные пользователи. ]
Начал с простого: авторизация и вывод игровой инфы,языка совсем не знаю,за основу брал
http://zhyk.ru/forum/showthread.php?t=409817
http://zhyk.ru/forum/showthread.php?t=410971
Проблема заключается в том, что после отправления ID и AUTH приходит SID, который повторно отправляется, после чего приходит нужная мне информация
Выглядит это так:
[Ссылки могут видеть только зарегистрированные пользователи. ]
[Ссылки могут видеть только зарегистрированные пользователи. ]
[Ссылки могут видеть только зарегистрированные пользователи. ]
[Ссылки могут видеть только зарегистрированные пользователи. ]
[Ссылки могут видеть только зарегистрированные пользователи. ]
[Ссылки могут видеть только зарегистрированные пользователи. ]


По идее, нужно спарсить сид и отправить его обратно.Как это программно реализовать я не знаю
  Ответить с цитированием
Старый 05.12.2013, 12:12   #2
 Разведчик
Аватар для NerdyCodingKid
 
NerdyCodingKid на правильном путиNerdyCodingKid на правильном пути
Регистрация: 18.11.2013
Сообщений: 3
Популярность: 197
Сказал(а) спасибо: 0
Поблагодарили 10 раз(а) в 9 сообщениях
 
По умолчанию Re: бот

Если суть заключается в поиске значений, то самый простой вариант заключается в [Ссылки могут видеть только зарегистрированные пользователи. ] дважды:
Сначала с разделителем "<sid>", а потом вхождение с индексом 1 с разделителем "</sid>". После этого, первым по счёту элементом в получившемся массиве будет твой sid в виде строки.
  Ответить с цитированием
Старый 05.12.2013, 14:11   #3
 Разведчик
Аватар для sachok3
 
sachok3 никому не известный тип
Регистрация: 29.03.2013
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: бот

Ок,поставлю вопрос иначе:
Взял Рабочий код другого бота,поменял нужные мне строки
вот сам код

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.IO;

namespace bot
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
string text = this.post("http://game-r01vk.rjgplay.com/command/", "<auth><auth_key>" + this.textBox2.Text + "</auth_key> <login>" + this.textBox1.Text + "</login></auth>");
this.label4.Text = this.parse(text, "<krone>", "</krone");
this.label6.Text = this.parse(text, "<sid>", "</sid");
}
private string post(string uri, string req)
{
string s = req;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
request.UserAgent = "Mozilla/5.0 (Windows NT 5.1; rv:25.0) Gecko/20100101 Firefox/25.0";
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
byte[] bytes = Encoding.ASCII.GetBytes(s);
request.ContentLength = bytes.Length;
request.GetRequestStream().Write(bytes, 0, bytes.Length);
request.GetRequestStream().Close();
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
return new StreamReader(response.GetResponseStream(), Encoding.UTF8).ReadToEnd();
}


string res;
private string strNewValue;
private string strResponse;
private string parse(string text, string ind1, string ind2)
{
res = "";
string[] stringSeparators = new string[] { "\n" };
string[] result = text.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries);
foreach (string stroka in result)
{
if (stroka.IndexOf(ind1) != -1)
{
string[] Moneyy = stroka.ToString().Split((Convert.ToChar(">")));
res = Moneyy[1].Replace(ind2, "");
}
}
return res;
}

private void label4_Click(object sender, EventArgs e)
{

}

private void label6_Click(object sender, EventArgs e)
{

}

}
}
Вот результат выполнения
[Ссылки могут видеть только зарегистрированные пользователи. ]
Бот работает как должен, он парсит СИД и выдает его,чтобы увидеть параметр "кроны", нужно повторно отправить запрос с СИДом.(смотрите скрин начала поста)
Как это сделать?
  Ответить с цитированием
Старый 05.12.2013, 14:40   #4
 Разведчик
Аватар для NerdyCodingKid
 
NerdyCodingKid на правильном путиNerdyCodingKid на правильном пути
Регистрация: 18.11.2013
Сообщений: 3
Популярность: 197
Сказал(а) спасибо: 0
Поблагодарили 10 раз(а) в 9 сообщениях
 
По умолчанию Re: бот

Как сделать?
Посмотри как делает это клиент и повтори.
  Ответить с цитированием
Старый 05.12.2013, 17:13   #5
 Разведчик
Аватар для sachok3
 
sachok3 никому не известный тип
Регистрация: 29.03.2013
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: бот

[Ссылки могут видеть только зарегистрированные пользователи. ]
[Ссылки могут видеть только зарегистрированные пользователи. ]

клиент делает это так,как повторить я не знаю.
  Ответить с цитированием
Старый 05.12.2013, 22:29   #6
 Разведчик
Аватар для NerdyCodingKid
 
NerdyCodingKid на правильном путиNerdyCodingKid на правильном пути
Регистрация: 18.11.2013
Сообщений: 3
Популярность: 197
Сказал(а) спасибо: 0
Поблагодарили 10 раз(а) в 9 сообщениях
 
По умолчанию Re: бот

В RAW посмотри
  Ответить с цитированием
Старый 06.12.2013, 00:01   #7
 Разведчик
Аватар для sachok3
 
sachok3 никому не известный тип
Регистрация: 29.03.2013
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: бот

Что я там увижу там Headers + Text объедены.Скрин Headersа висит самый первый, но он ни к чему,я и так знаю что ответ идет туда, откуда запрос пришел
  Ответить с цитированием
Старый 06.12.2013, 01:14   #8
 Старший сержант
Аватар для Sinyss
 
Sinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака Норриса
Регистрация: 29.07.2011
Сообщений: 197
Популярность: 8989
Сказал(а) спасибо: 45
Поблагодарили 175 раз(а) в 139 сообщениях
Отправить сообщение для Sinyss с помощью Skype™
 
По умолчанию Re: бот

Цитата:
Сообщение от sachok3Посмотреть сообщение
Что я там увижу там Headers + Text объедены.Скрин Headersа висит самый первый, но он ни к чему,я и так знаю что ответ идет туда, откуда запрос пришел

Ну так запрос смотри, а не ответ...
  Ответить с цитированием
Старый 06.12.2013, 19:47   #9
 Разведчик
Аватар для sachok3
 
sachok3 никому не известный тип
Регистрация: 29.03.2013
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: бот

Еще короче: куда это дописать, чтобы прога работала, т.е. возвращала еще и эту строку this.label4.Text = this.parse(text, "<krone>", "</krone")

Код:
 String secondStepForm = "<get_game_info sid=\"" + this.label6.Text + "\"/>";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://game-r01vk.rjgplay.com/command/");
  Ответить с цитированием
Старый 08.12.2013, 15:16   #10
 Разведчик
Аватар для sachok3
 
sachok3 никому не известный тип
Регистрация: 29.03.2013
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: бот

Допустим. с этим я разобрался,теперь хочу сделать так:
из ричтекстбокса берутся запросы в виде
запрос1
|
запрос2
|
....
Нужно разбить текст на запросы знаком и отправить их с какой-то задержкой.
  Ответить с цитированием
Старый 09.12.2013, 16:44   #11
 Разведчик
Аватар для sachok3
 
sachok3 никому не известный тип
Регистрация: 29.03.2013
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: бот

взял этотпример с многопоточностью
http://zhyk.ru/forum/showthread.php?t=351080
отправляю такое, заменив разделитель на '|'
<start_defence_session sid="ebc4396f78ef7cae288f8eac043cbeb1">
<type>wild_tribe_c1_m7_s3</type>
</start_defence_session>
|
...
отправляестя так
[Ссылки могут видеть только зарегистрированные пользователи. ]

Добавлено через 7 часов 18 минут
с этим тоже разобрался, все равно не то
SID запросов должен быть 1 у всей сессии.
Теперь нужно в тексте из ричтекстбокса найти и заменить сид на полученный при авторизации.

Последний раз редактировалось sachok3; 10.12.2013 в 00:02. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 10.12.2013, 23:43   #12
 Разведчик
Аватар для sachok3
 
sachok3 никому не известный тип
Регистрация: 29.03.2013
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: бот

sid="865c81be027bfd9019ea4a8872d64c9f">
как достать, используя регулярные выражения?
  Ответить с цитированием
Старый 13.12.2013, 16:43   #13
 Разведчик
Аватар для sachok3
 
sachok3 никому не известный тип
Регистрация: 29.03.2013
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: бот

Многопоток реально реализовать через UserAgent?
Все примеры, которые нашел через прокси Чарлеса

Код:
private void button3_Click(object sender, EventArgs e)
        {
            t = new Thread(s_w);
            t.Start();
        }

        string send_POST(string url, string post)
        {
            string Response_POST = "", StrNewValue;
            try
            {
                HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
                req.Method = "POST";
                req.Proxy = new WebProxy("127.0.0.1", 8888);
                req.ContentType = "application/x-www-form-urlencoded";
                StrNewValue = post;
                req.ContentLength = StrNewValue.Length;
                StreamWriter Soup = new StreamWriter(req.GetRequestStream(), System.Text.Encoding.ASCII);
                Soup.Write(StrNewValue);
                Soup.Close();
                StreamReader stin3 = new StreamReader(req.GetResponse().GetResponseStream());
                Response_POST = stin3.ReadToEnd();
                stin3.Close();
            }
            catch { }
            return Response_POST;
        }

        private void s_w()
        {
            o.MaxDegreeOfParallelism = Convert.ToInt32(numericUpDown1.Value);
            Parallel.ForEach(GetLine(), o,
                line => send_POST("http://game-r01vk.rjgplay.com/command/", line));
        }

        private void richTextBox1_TextChanged(object sender, EventArgs e)
        {

        }
        IEnumerable<string> GetLine()
        {
            string[] line = null;
            if (richTextBox1.InvokeRequired)
            {
                richTextBox1.Invoke(
                    new Action(() =>
                    {
                        line = richTextBox1.Text.Split('|');
                    }
                    ));
            }
            else
                line = richTextBox1.Text.Split('|');
            return line;
        }

Последний раз редактировалось sachok3; 13.12.2013 в 17:20.
  Ответить с цитированием
Старый 08.01.2014, 08:54   #14
 Разведчик
Аватар для enhy
 
enhy никому не известный тип
Регистрация: 13.04.2013
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: бот

Цитата:
req.Proxy = new WebProxy("127.0.0.1", 8888);

эту строку удалишь и будет без прокси и чарлеса работатть
  Ответить с цитированием
Ответ

Метки
бот вк


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

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

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

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

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

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