![]() |
Модераторы: feodorv |
![]() ![]() ![]() |
|
Oleg_Ci |
|
||||||
![]() Friend ![]() ![]() Профиль Группа: Участник Сообщений: 485 Регистрация: 28.5.2006 Где: Новосиб.обл. Репутация: нет Всего: 30 |
Здравствуйте.
Идея есть, написать бота для скандинавских аукционов. Есть цель создать сайт на тематику этих аукционов, этого бота там выложу, может продать получиться. Если кто-то ещё не в курсе что такое “скандинавский аукцион” делаю небольшое пояснение. В интернете появились сайты на которых товары продаются следующим образом, выкладывается товар с нулевой стоимостью, есть таймер отсчитывающий секунды до нуля, есть кнопка с надписью “Сделать Ставку”, если кто-нибудь нажимает на эту кнопку (делает ставку), тогда таймер увеличивается на какое-то количество секунд, а стоимость этого товара повышается, на 25 копеек или на 10 коп. (стоимость ставки от 5 до 10 рублей), если уменьшающийся таймер достиг нуля, тогда сделавший последнюю ставку забирает товар по стоимости которая набежала за период “торгов”(обычно не более 10-20% от реальной стоимости). Суть сего действия в том чтобы часами (днями) сидеть и нажимать кнопку ”сделать ставку”, и чтоб после тебя никто не нажал, тогда таймер достигнет нуля, и ты (последний нажавший) заберешь товар “по дешёвке” (Конечно не считая количества слитых денег на ставки). Проигравшим вроде отдают часть денег, помойму 75%(или 50%). Я в цифрах могу ошибаться. Сейчас я имею следующие результаты: Пишу бота на С++ MFC. Создал проект с классом представления производным от CHtmlView, получил указатели на элементы (кнопку “сделать ставку”, строки с логином и суммой) такого вида
Читаю(element->get_innerText(..)) логины, суммы, вычисляю время нажатия на кнопку, перемещаю указатель на кнопку для нажатия или фокус ввода на кнопку делаю для эмуляции нажатия клавиши Enter, “нажимаю” на кнопку при помощи api-функций
Бот работает (нажимает на кнопку делая ставки). В общем я пытался идти от javascript языка и таких конструкций:
Вопросы у меня такие: 1) сервер аукциона думает что я подключаюсь через IExplorer ? 2) главное, как могут моего бота обнаружить? Мне кажется, обнаружить, можно только через “язык JavaScript”, например написать функцию которая за поведением мыши наблюдать будет (перемещения указателя). Интересно также ваше мнение о том, как правильно писать подобных ботов надо (чтоб необнаружили на сервере). (И ещё один вопрос не в раздел С++ но может здесь кто знает - есть также бот написанный на JavaScript, как его засечь можно?) |
||||||
|
|||||||
MAKCim |
|
||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 6 Всего: 207 |
смотря, какой MFC генерирует HTTP POST запрос ![]()
код JS выполняется на клиентской стороне единственный способ его свзяи с сервером - генерация POST запросов т. к код не закрыт, то его всегда можно "вскрыть" и дальше эмулировать нужные действия
боты обычно палятся на IP при большой (нетипичной для юзера-человека) активности и "неправильным" (опять таки, нетипичным для обычного браузера) полям HTTP запроса ps. я бы использовал cURL -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||
|
|||||
Oleg_Ci |
|
||||
![]() Friend ![]() ![]() Профиль Группа: Участник Сообщений: 485 Регистрация: 28.5.2006 Где: Новосиб.обл. Репутация: нет Всего: 30 |
Проверил свои браузеры и бота, вот таким штуками
ничего подозрительного, у бота и IExplorer всё одинаково показывает. Как проверить HTTP POST запрос ненашол. К сожалению, я этот язык незнаю. ![]() |
||||
|
|||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 6 Всего: 207 |
возьми какой-нибудь сниффер и посмотри исходящий пакет, который генерирует MFC это не язык, а библиотека google отменили? ![]() -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
Oleg_Ci |
|
|||
![]() Friend ![]() ![]() Профиль Группа: Участник Сообщений: 485 Регистрация: 28.5.2006 Где: Новосиб.обл. Репутация: нет Всего: 30 |
||||
|
||||
Oleg_Ci |
|
|||
![]() Friend ![]() ![]() Профиль Группа: Участник Сообщений: 485 Регистрация: 28.5.2006 Где: Новосиб.обл. Репутация: нет Всего: 30 |
При помощи сниффера HttpAnalyzerStdV3 (методы - Get, Post) проверял Бота, Opera, IExrlorer подключившись к аукциону.
Бот и IExplorer везде одинаковые у них параметры, только 1 параметр - Cookie-PHPSessId разные. Значит сервер считает моего бота браузером IExrlorer. ![]() Спасибки за подсказки. Добавлено через 6 минут и 16 секунд ![]()
|
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 5 Всего: 118 |
тыкать на кнопки имхо далеко неправильный способ, на что вам уже указывали.
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
Comm |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 269 Регистрация: 31.8.2007 Где: Санкт-Петербург Репутация: -1 Всего: 1 |
Господин jonie правильно написал что не лучший способ тыкать на кнопки
ИМХО Лучше обрабатывать данные минуя браузер,скопировать запрос проанализированный снифером(за исключением кукиксов или сессий)и отослать на сервер,тем самым мы исключаем запуск проверочного кода Java на стороне клиента(код вычисление бот или не бот тыкнул на кнопку). Это сообщение отредактировал(а) Comm - 22.2.2009, 12:00 -------------------- =))))) ![]() |
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 5 Всего: 118 |
Comm бред написал. Начиная от слов "или сессий" до конца, исключая собственно слово "отослать".
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
Comm |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 269 Регистрация: 31.8.2007 Где: Санкт-Петербург Репутация: -1 Всего: 1 |
jonie, у меня есть опыт программирования подобных ботов..если мы с вами разошлись во мнениях это не значит что я бред написал.. если у вас есть другой более хороший способ,опишите его а не цитируйте кто и на что кому то указывал. ИМХО.
-------------------- =))))) ![]() |
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 5 Всего: 118 |
1) java для подобных вещей используется крайней редко, используют всеже чаще JavaScript, и уж конечно java и javasctipt вооообще разные вещи, а те кто их "путает" мягко говоря некомпетентны;
2) определить кто нажал клавишу (при коде что выше) нельзя ну никак; 3) понятие сессия вам, вероятно, не очень знакомо. по обыкнокению она хранится на сервере и привязывается к клиенту по кукам; 4) куки слать надо - иначе ваша сессия будут потеряна. -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
Oleg_Ci |
|
||||
![]() Friend ![]() ![]() Профиль Группа: Участник Сообщений: 485 Регистрация: 28.5.2006 Где: Новосиб.обл. Репутация: нет Всего: 30 |
Я тут разбирался с cURL и вот чего получилось (правда к vs C++ прикрутить несмог, так-то на PHP).
Вот так программа может “нажать на кнопку” (простейший вариант):
Аналогично читает данные посылаемые с сервера (Кто куда нажал). Проверял на gagen.ru Непонял зачем программа добавляе к URL случайное значение (javascript:Math.random())(“…htm?r=0.11509138081176307”). Кстати можно “нажимать на кнопку” введя в браузере подобную строку: "http://www.gagen.ru/bid.php?auction=183226&r=0.653980322524627&h="
Это сообщение отредактировал(а) Oleg_Ci - 23.2.2009, 17:21 |
||||
|
|||||
Comm |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 269 Регистрация: 31.8.2007 Где: Санкт-Петербург Репутация: -1 Всего: 1 |
Под словом "Куки" я понимаю информацию оставленную сервером на клиентском компьютере.
Под словом "Сессия" я понимаю некоторый промежуток времени в котором Авторизация не нужна. Именно с помощью скриптов Java можно вычислить реальный ай пи адрес конечного пользователя вне зависимости от того подключен ли он через прокси. Поэтому я и предположил что с помощью Java можно узнать ,искусственно или нет была нажата та или иная кнопка. Это сообщение отредактировал(а) Comm - 23.2.2009, 17:53 -------------------- =))))) ![]() |
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 5 Всего: 118 |
Comm а давайте будем разговаривать, когда вы узнаете отличия Java от JavaScript и будете применять полученные знания? с помощью javascript вы мои ip адреса не узнаете.
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
Comm |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 269 Регистрация: 31.8.2007 Где: Санкт-Петербург Репутация: -1 Всего: 1 |
Как вариант,прочитать ключ найстройки из реестра. -------------------- =))))) ![]() |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Сети | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |