Вход на аккаунт DarkOrbit по логину/паролю [.NET] (c)
В этой статье я покажу как зайти на игровой аккаунт по логину и паролю. А также спарсить некоторые данные. (На данном примере я использую сервер Россия 3).
Я использую [Ссылки могут видеть только зарегистрированные пользователи. ] (Ссылка на microsoft.com)
1. Создаем новый проект. И добавим несколько элементов. (как на картинке.)
Присваиваем текстбоксам названия log и pass .
2. Жмем 2 раза на кнопку, что бы перейти к коду.
Объявляем. (вставляем в самому верху).
Код:
Imports System.Net
Imports System.IO
Под строкой
Код:
Public Class Form1
Добавляем след.
Код:
Dim ru3, sru3, lg, st As String
Это понадобится для проверки активности сервера.
Ниже объявим функцию парса.
Код:
Public Function Pars(ByRef strSource As String, ByRef strStart As String, ByRef strEnd As String, Optional ByRef startPos As Integer = 0) As String
Dim iPos As Integer, iEnd As Integer, lenStart As Integer = strStart.Length
Dim strResult As String
strResult = String.Empty
iPos = strSource.IndexOf(strStart, startPos)
iEnd = strSource.IndexOf(strEnd, iPos + lenStart)
If iPos <> -1 AndAlso iEnd <> -1 Then
strResult = strSource.Substring(iPos + lenStart, iEnd - (iPos + lenStart))
End If
Return strResult
End Function
3. Переходим к коду кнопки.
Код:
Dim postData As String
postData = "loginForm_default_username=" & log.Text & "&loginForm_default_password=" & pass.Text & "&loginForm_default_login_submit=%D0%92%D1%85%D0%BE%D0%B4"
Dim request As HttpWebRequest
Dim response As HttpWebResponse
'Объявляем запрос/ответ.
request = CType(WebRequest.Create("http://www.darkorbit.ru/?locale=ru&aid=0&aip="), HttpWebRequest)
'Создаем запрос.
request.Host = ("www.darkorbit.ru")
request.ContentLength = postData.Length
request.Headers.Add("Cache-Control", "max-age=0")
request.Headers.Add("Origin", "http://www.darkorbit.ru")
request.UserAgent = " Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4"
request.ContentType = "application/x-www-form-urlencoded"
request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
request.Referer = "http://www.darkorbit.ru"
request.Headers.Add("Cookie", "bpLandingPage_fallback=http%253A%252F%252Fwww.darkorbit.ru%252F; __bpid=50a4f628CkByduYN8UHX8KgF4Dgppm7B; lastLogin=1353438473; __bpid=50a4f628CkByduYN8UHX8KgF4Dgppm7B; __utma=1.160351074.1353437530.1353437530.1353437530.1; __utmz=1.1353437530.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)")
request.Method = "POST"
request.AllowAutoRedirect = False
'Добавляем заголовки запроса
Dim requestStream As Stream = request.GetRequestStream()
Dim postBytes As Byte() = System.Text.Encoding.ASCII.GetBytes(postData)
requestStream.Write(postBytes, 0, postBytes.Length)
requestStream.Close()
response = CType(request.GetResponse(), HttpWebResponse)
st = (New StreamReader(response.GetResponseStream()).ReadToEnd())
'получаем ответ, в виде текста.
Добавляем на форму еще несколько объектов. (Как на картинке).
Справа видны 4 текстбокса, называем их ru3p1, ru6p2, ru6p3, ru6p4 - поочередно, сверху вниз.
Возвращаемся к коду первой кнопки. И добавляем эти строки.
Код:
sru3 = Pars(st, ru3p1.Text, ru6p2.Text) 'Здесь мы получим часть ответа, где содержится необходимая информация об сервере.
ru3 = Pars(sru3, ru6p3.Text, ru6p4.Text) 'здесь мы получим текст, который означает открыт ли сервер.
If ru3 = "serverSelection_ini" Then
ListBox1.Items.Add("Ru3 - off")
Else
ListBox1.Items.Add("Ru3 - on")
End If
Все, здесь все готово.
4. Добавляем на форму еще 2 текстбокса, с названием pars1 и pars2. (Скрин).
Жмем 2 раза на кнопку2, в коде пишем.
Код:
Dim ru, st2, st3 As String
If ListBox1.SelectedItem = "Ru3 - on" Then
ru = Pars(sru3, pars1.Text, pars2.Text) 'Получаем ссылку на вход в аккаунт.
Else
MsgBox("Сервер выключен")
End If
'Делаем запрос по ссылке, которую получили выше.
Dim postData As String
postData = ""
Dim request As HttpWebRequest
Dim response As HttpWebResponse
request = CType(WebRequest.Create(ru), HttpWebRequest)
request.Host = ("www.darkorbit.ru")
request.ContentLength = postData.Length
request.Headers.Add("Cache-Control", "max-age=0")
request.Headers.Add("Origin", "http://www.darkorbit.ru")
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4"
request.ContentType = "application/x-www-form-urlencoded"
request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
request.Referer = "http://www.darkorbit.ru"
request.Headers.Add("Cookie", "bpLandingPage_fallback=http%253A%252F%252Fwww.darkorbit.ru%252F; __bpid=50a4f628CkByduYN8UHX8KgF4Dgppm7B; lastLogin=1353438473; __bpid=50a4f628CkByduYN8UHX8KgF4Dgppm7B; __utma=1.160351074.1353437530.1353437530.1353437530.1; __utmz=1.1353437530.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)")
request.Method = "POST"
request.AllowAutoRedirect = False
Dim requestStream As Stream = request.GetRequestStream()
Dim postBytes As Byte() = System.Text.Encoding.ASCII.GetBytes(postData)
requestStream.Write(postBytes, 0, postBytes.Length)
requestStream.Close()
response = CType(request.GetResponse(), HttpWebResponse)
st2 = (New StreamReader(response.GetResponseStream()).ReadToEnd()) 'получаем ответ
st3 = response.GetResponseHeader("Set-Cookie") 'получаем куки с заголовком "Set-Cookie" с ответа. (здесь находится сид.)
Dim sid as String
sid = Pars(st3, "GMT; path=/,dosid=", "; path=/") 'Получаем наш сид.
Вообщем сид у нас есть, с ним можно уже делать запрос на сервер.
Для удобства я создам вторую форму где будет получена информация об аккаунте.
В конце кода кнопки2, вставляем:
Код:
Me.Hide() 'Скрываем первую форму
Form2.Show() 'Показываем вторую
5. Создаем новую форму с именем Form2.
Объявляем..
Код:
Imports System.Net
Imports System.IO
На форме делаем след:
Жмем 2 раза на форму, для перехода к коду. И пишем.
Код:
Dim st4 as String
Dim postData As String
postData = ""
Dim request As HttpWebRequest
Dim response As HttpWebResponse
request = CType(WebRequest.Create("http://ru3.darkorbit.bigpoint.com/indexInternal.es?action=internalStart"), HttpWebRequest)
request.Host = ("www.darkorbit.ru")
request.ContentLength = postData.Length
request.Headers.Add("Cache-Control", "max-age=0")
request.Headers.Add("Origin", "http://www.darkorbit.ru")
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4"
request.ContentType = "application/x-www-form-urlencoded"
request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
request.Referer = "http://www.darkorbit.ru"
request.Headers.Add("Cookie", "__bpid=50a4f628CkByduYN8UHX8KgF4Dgppm7B; fbm_178487062205684=base_domain=.bigpoint.com; fbm_364160817714=base_domain=.darkorbit.bigpoint.com; lastLogin=1353602190; __bpid=50a4f628CkByduYN8UHX8KgF4Dgppm7B; __utma=1.1824066265.1353438432.1353597713.1353602194.4; __utmz=1.1353595229.2.2.utmcsr=darkorbit.ru|utmccn=(referral)|utmcmd=referral|utmcct=/; bpLandingPage_fallback=http%253A%252F%252Ffb.darkorbit.bigpoint.com%252F%253Ffb_source%253Dbookmark_favorites%2526ref%253Dbookmarks%2526count%253D0%2526fb_bmpos%253D7_0; bptrack_info=1; bp_login_689=a%3A2%3A%7Bs%3A8%3A%22username%22%3Bs%3A15%3A%22100002628144423%22%3Bs%3A8%3A%22password%22%3Bs%3A32%3A%2217c6926d0afa25042271bf17a481f855%22%3B%7D; fbsr_178487062205684=xrQ_uvlXFGuboMSdX5Zh0ia_VEsHBAMTqSKUm2kgkaA.eyJhbGdvcml0aG0iOiJITUFDLVNIQTI1NiIsImNvZGUiOiJBUUE3UW90Q2N3dHlsc21COVhwbU5ZZG8tQmd0dkx4T1JJcDVUa1lWcmYzbXNHUnk3WjkyV2Mxa1Y1MWJEdVlia3l4azI5SHJ3Q2xzNnd3UkxtWkFRVkZXb3A1Rk1BTmJNY1p1U3FLQWMwbnB2NXEtYzhwTk9hOVZIaEZzT0hjWmd4eW4tLXRaa1U1TktKQjFCS1JiLS1lRDUzaVhNMFg2bnRUanRNWTI2dkZldy1XSV9NLVAtVmZ4TjA0VnptMEtMczZHbVZHaXBMTUFfMTVXZDV6a0RKd0EiLCJpc3N1ZWRfYXQiOjEzNTM3NjY3MDEsInVzZXJfaWQiOiIxMDAwMDI2MjgxNDQ0MjMifQ; dosid=" & Form1.sid) 'Добавляем куки с полученным сидом.
request.Method = "POST"
request.AllowAutoRedirect = False
Dim requestStream As Stream = request.GetRequestStream()
Dim postBytes As Byte() = System.Text.Encoding.ASCII.GetBytes(postData)
requestStream.Write(postBytes, 0, postBytes.Length)
requestStream.Close()
response = CType(request.GetResponse(), HttpWebResponse)
st4 = (New StreamReader(response.GetResponseStream()).ReadToEnd())
На форму добавляем 8 текстбоксов. Скрин:
Называем по очереди (скрин), p1, p2, p3..p7, p8.
Добавляем текст в эти боксы:
Поздравляю, готово. Можно компилировать и смотреть что выйдет.
Все вопросы задавать в теме.
Об ошибке, прошу сообщить.
Исходник:
[Ссылки могут видеть только зарегистрированные пользователи. ] (Здесь есть проверка всех ру серверов, в листбокс появится только те, которые активны.)
Re: [.NET] Авторизация DarkOrbit по логину/паролю.
If ru3 = "serverSelection_ini" Then
ListBox1.Items.Add("Ru3 - off")
Else
ListBox1.Items.Add("Ru3 - on")
End If
а что делает этот участок кода? я не понял что-то
Re: [.NET] Авторизация DarkOrbit по логину/паролю.
Цитата:
Сообщение от avi2011class
If ru3 = "serverSelection_ini" Then
ListBox1.Items.Add("Ru3 - off")
Else
ListBox1.Items.Add("Ru3 - on")
End If
а что делает этот участок кода? я не понял что-то
Проверяет, активен ли сервер. Если он активен, то в листбоксе появится ru3 - on, и наоборот.