Что нового

как выбрать игровой сервер посредством HTTP ?

lexaSF

Новичок
Сообщения
182
Репутация
3
Вот, новая тема)
подскажите, как выбрать игровой сервер посредством HTTP в игре www.darkorbit.com ?
когда залогинился там вылазиет окно выбора серверов, как послать запрос на выбор определенного сервре - я не знаю :smile:
 

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
lexaSF
Когда пользователь нажимает кнопку, то на сервер игры отправляются данные от этой кнопки.
Которые обозначают выбранный сервер.

Данные отправляются все в тех же GET/POST-запросах. Поэтому, необходимо сформировать такой же GET/POST-запрос и отправить вручную.

Что такое и как формируются GET/POST-запросы - ссылки, уже не раз, писал.
 
Автор
L

lexaSF

Новичок
Сообщения
182
Репутация
3
ну я поял, я нашел в в теге <Div> name Input в которые вводятся данные, а вот name кнопки найти не могу, прокси помоги)
 

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
lexaSF [?]
Вы разве не знали, что у модераторов, по постановлению Имперской галактики всея и всеё от 23.12.7546, больше нет возможностей мысли читать на расстоянии? Перевожу: Где исходный код?
 
Автор
L

lexaSF

Новичок
Сообщения
182
Репутация
3
вот <Div><Div\> одной кнопки сервера:
Код:
<div id="instance_68" class="fliesstext_aktiv">

                                
                <div style="float:left;width:65px;">ЕС</div>
                <div style="float:left;width:95px;">Pyccĸий</div>
                <div style="float:left;width:95px;">Россия</div>



                                    <div style="float:left;width:85px;">
</div>
                
                                    <div style="float:left;"><a class="verweis" href="http://ru1.darkorbit.bigpoint.com/GameAPI.php?req=YTo0OntzOjY6ImFjdGlvbiI7czoyMToicG9ydGFsLmxvZ2luQnlDcnlwdElkIjtzOjEyOiJsb2dpbkNyeXB0SWQiO3M6MzI6IjI1MDYxNzA0YTY0MDE2MWJmYzNiYjJjMTYxMTZjZThhIjtzOjY6ImdhbWVJZCI7aTo2ODtzOjY6ImxvY2FsZSI7czoyOiJydSI7fQ%3D%3D&sign=6f0ee7e6f918e3cb0075c21086121b4a&aid=333&aig=22&lang=ru&ref_sid=475ec24683238efc29d7e534f2c9b8a3&ref_pid=23&__utma=1.326445641.1296379970.1297789784.1297791649.35&__utmb=1.34.10.1297791649&__utmc=1&__utmx=-&__utmz=1.1296379970.1.1.utmcsr%3D%28direct%29%7Cutmccn%3D%28direct%29%7Cutmcmd%3D%28none%29&__utmv=-&__utmk=163396796"><div id="ini_2" style="width:117px;height:21px;background-image:url(http://darkorbit.l3.cdn.bigpoint.net/do_img/global/intro/but_spielen_1.png?__cv=6ea94f732fd9b706f2815426004d1200);text-align:center;line-height:18px;" onmouseover="changePic('ini_2','http://darkorbit.l3.cdn.bigpoint.net/do_img/global/intro/but_spielen_2.png?__cv=bac21794f71244a8b8ff4f8ae0e8d700')" onmouseout="changePic('ini_2','http://darkorbit.l3.cdn.bigpoint.net/do_img/global/intro/but_spielen_1.png?__cv=6ea94f732fd9b706f2815426004d1200')">играть</div></a></div>
                
                <div class="clearMe" style="height:1px;"></div>

                <div style="width:460px;height:1px;font-size:1px;margin:2px 3px 2px 0;background-image:url(http://darkorbit.l3.cdn.bigpoint.net/do_img/global/intro/trenner.png?__cv=7d9147d7cad40ee2f77dee9a43bce00);background-position: top center"><img src="http://darkorbit.l3.cdn.bigpoint.net/do_img/global/s.gif?__cv=ad480fd0732d0f6f1d8b06359e3a4200" width="1" height="1" alt="" /></div>


            </div>
 

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
ну вот и адрес:
Код:
<a class="verweis" href="http://ru1.darkorbit.bigpoint.com/GameAPI.php?req=YTo0OntzOjY6ImFjdGlvbiI7czoyMToicG9ydGFsLmxvZ2luQnlDcnlwdElkIjtzOjEyOiJsb2dpbkNyeXB0SWQiO3M6MzI6IjI1MDYxNzA0YTY0MDE2MWJmYzNiYjJjMTYxMTZjZThhIjtzOjY6ImdhbWVJZCI7aTo2ODtzOjY6ImxvY2FsZSI7czoyOiJydSI7fQ%3D%3D&sign=6f0ee7e6f918e3cb0075c21086121b4a&aid=333&aig=22&lang=ru&ref_sid=475ec24683238efc29d7e534f2c9b8a3&ref_pid=23&__utma=1.326445641.1296379970.1297789784.1297791649.35&__utmb=1.34.10.1297791649&__utmc=1&__utmx=-&__utmz=1.1296379970.1.1.utmcsr%3D%28direct%29%7Cutmccn%3D%28direct%29%7Cutmcmd%3D%28none%29&__utmv=-&__utmk=163396796">

Попробуйте отправить GET-ом адрес из href.
 
Автор
L

lexaSF

Новичок
Сообщения
182
Репутация
3
Надо вот так:
Код:
$oHTTP.Open('GET', $sRequestURL)
$oHTTP.Send('http://ru5.darkorbit.bigpoint.com/GameAPI.php?')
 

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
Нет.
В Send передаются только GET данные.
Которых в Вашем коде ровно: 0.
 
Автор
L

lexaSF

Новичок
Сообщения
182
Репутация
3
тогда надо будет просто приписать еще 1
Код:
$oHTTP.Send('http://ru5.darkorbit.bigpoint.com/GameAPI.php?') ?
 

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
Нет. В send необходимо передовать только GET данные.
GET данные необходимо "взять" из ссылки.
Все выполняется точно так же, как и с авторизацией.
 
Автор
L

lexaSF

Новичок
Сообщения
182
Репутация
3
А что именно там выбирать :blink:
 

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
lexaSF
Данные, которые передаются GET-запросом.
 
Автор
L

lexaSF

Новичок
Сообщения
182
Репутация
3
Вот смотрите, я понял что нцжно там выбрать все что после href= но куда мне вставить этот запрос в том коде:
Код:
$sRequestURL    = 'http://www.darkorbit.bigpoint.com'
$sLogin         = 'XeNoН'
$sPass          = 'dscjwrjuj44'

; POST-запрос на сайт
$sSendData      = 'loginForm_default_username=' & $sLogin & '&loginForm_default_password=' & $sPass
$oHTTP = ObjCreate('WinHttp.WinHttpRequest.5.1')
$oHTTP.Open('POST', $sRequestURL)
$oHTTP.setTimeouts(5000, 5000, 15000, 15000)
$oHTTP.SetRequestHeader('Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8')
$oHTTP.SetRequestHeader('Accept-Language', 'ru')
$oHTTP.SetRequestHeader('Referer', $sRequestURL)
$oHTTP.SetRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
$oHTTP.SetRequestHeader('User-Agent', 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)')
$oHTTP.SetRequestHeader('Host', $sRequestURL)
$oHTTP.SetRequestHeader('Proxy-Connection', 'Keep-alive')
$oHTTP.Send($sSendData)
$oHTTP.WaitForResponse
$Response = $oHTTP.ResponseText

; запуск Блокнота и вставка результата POST-запроса
$hWin = WinGetHandle('[CLASS:Notepad]')
If $hWin == '' Then
    Run('notepad.exe')
    $hWin = WinWait('[CLASS:Notepad]')
EndIf
ControlSetText($hWin, '', 'Edit1', $Response)
WinActivate($hWin)

; проверка авторизации
If StringInStr($Response, 'Данное имя пользователя и/или пароль некорректны') Then
    MsgBox(16, 'Ошибка', 'Данное имя пользователя и/или пароль некорректны')
Else
    MsgBox(64, 'Внимание', 'Авторизация пройдена')
EndIf
 

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
OffTopic:
qsort
Ооой, я не могу :rofl: Только не продолжай, пожалуйста! Это надо в тему приколов кинуть



lexaSF [?]
Вот смотрите, я понял что нцжно там выбрать все что после href= но куда мне вставить этот запрос в том коде

Да, верно. Все что в href нужно и нежно разобрать. В данном случае, в href находится:
* абсолютный адрес запрашиваемого файла с сайта;
* параметры, которые передаются запрашиваемому файл.

Поэтому адрес необходимо разделить на эти две части:
* часть 1: адрес GET запроса;
* часть 2: передаваемые GET параметры.
 
Автор
L

lexaSF

Новичок
Сообщения
182
Репутация
3
я спросил в какое место вставить Send с этими данными, и как он должен выглядеть правильно, япока очень плохо разбираюсь в этом, так что извините пожалуйста за глупые вопросы :(
 
Автор
L

lexaSF

Новичок
Сообщения
182
Репутация
3
Код:
$sRequestURL    = 'http://www.darkorbit.bigpoint.com'
$sLogin         = 'XeNoН'
$sPass          = 'dscjwrjuj44'

; POST-запрос на сайт
$sSendData      = 'loginForm_default_username=' & $sLogin & '&loginForm_default_password=' & $sPass
$oHTTP = ObjCreate('WinHttp.WinHttpRequest.5.1')
$oHTTP.Open('POST', $sRequestURL)
$oHTTP.setTimeouts(5000, 5000, 15000, 15000)
$oHTTP.SetRequestHeader('Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8')
$oHTTP.SetRequestHeader('Accept-Language', 'ru')
$oHTTP.SetRequestHeader('Referer', $sRequestURL)
$oHTTP.SetRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
$oHTTP.SetRequestHeader('User-Agent', 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)')
$oHTTP.SetRequestHeader('Host', $sRequestURL)
$oHTTP.SetRequestHeader('Proxy-Connection', 'Keep-alive')
$oHTTP.Send($sSendData)
$oHTTP.Open('POST', 'http://ru1.darkorbit.bigpoint.com/GameAPI.php?')
$oHTTP.Send('req=YTo0OntzOjY6ImFjdGlvbiI7czoyMToicG9ydGFsLmxvZ2luQnlDcnlwdElkIjtzOjEyOiJsb2dpbkNyeXB0SWQiO3M6MzI6IjE3MzI3NGFlZDhjYTRmZDdlZTlhMjFjMzAyYmY4ZWFiIjtzOjY6ImdhbWVJZCI7aTozODg7czo2OiJsb2NhbGUiO3M6MjoicnUiO30%3D&sign=dc9e94f8e456249fac04d43b818a6704&aid=333&lang=ru&ref_sid=ab1098055e06269d20d2ab5c83ae108b&ref_pid=22&__utma=-&__utmb=-&__utmc=-&__utmx=-&__utmz=-&__utmv=-&__utmk=38294271')
$oHTTP.WaitForResponse
$Response = $oHTTP.ResponseText

; запуск Блокнота и вставка результата POST-запроса
$hWin = WinGetHandle('[CLASS:Notepad]')
If $hWin == '' Then
    Run('notepad.exe')
    $hWin = WinWait('[CLASS:Notepad]')
EndIf
ControlSetText($hWin, '', 'Edit1', $Response)
WinActivate($hWin)

; проверка авторизации
If StringInStr($Response, 'Данное имя пользователя и/или пароль некорректны') Then
    MsgBox(16, 'Ошибка', 'Данное имя пользователя и/или пароль некорректны')
Else
    MsgBox(64, 'Внимание', 'Авторизация пройдена')
EndIf

попробовал вот так, авторизируется, но на сервере возникает ошибка и выдает YToyOntzOjY6InJlc3VsdCI7czo1OiJFUlJPUiI7czo1OiJlcnJvciI7czoxNzoiaW52YWxpZCBzaWduYXR1cmUiO30=
а когда обычным способом заходишь все работает
 

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
lexaSF [?]
спросил в какое место вставить Send с этими данными
Месте, хммм. Ну все как в примере, так и вставить.

$oHTTP - это указатель на обект работы с HTTP.
У этого объекта есть методы (т.е. тоже самое, что функции). И эти методы можно вызывать.
Что и происходит:
Код:
$oHTTP.Open('POST', $sRequestURL)

- у объекта вызывает метод (функция) open.

Каждый метод, это как функция, выполняет какие-либо действия.
Соответсвенно, в метод можно передавать параметры.

Код:
$oHTTP.Open('POST', $sRequestURL)

Устанавливается соединение по адресу из переменной $sRequestURL и указывается, что все данные/параметры на открываемый (запрашиваемый) адрес будут передоваться POST методом.


Код:
$oHTTP.setTimeouts(5000, 5000, 15000, 15000)

Устанавливается время ожидания ответа, передачи запроса и т.д. (в MSDN можно глянуть подробнее).

Код:
$oHTTP.SetRequestHeader

Передаются различные параметры сайту: какой язык кодировки, формат переданных данных, тип ПО от которого произошол запрос и т.д.

Код:
$oHTTP.Send($sSendData)

Передача параметров на запрашиваемый адрес.

Код:
$oHTTP.WaitForResponse

Ожидание завершения ответа от сайта.

Код:
$Response = $oHTTP.ResponseText

Запись в переменную ответа от сервера.

Кстати! Это вариант POST-запроса. Для GET-запроса, будет достаточно функции InetRead.
Попробуйте, если непрокатит, тогда уж через POST.
 
Верх