Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 |

 

  Вопрос: Помогите переделать код плз.. Добавлено: 05.04.11 21:02  

Автор вопроса:  MISTER X | Web-сайт: studioartf.ru | ICQ: 463865965 
Помогите переделать код на vb6 плз..

public bool Auth(String email,String pass) {
            HttpWebRequest wrGETURL = (HttpWebRequest)System.Net.WebRequest.Create(
                "http://vkontakte.ru/login.php?m=1&email=" + email + "&pass=" + pass
            );
            wrGETURL.AllowAutoRedirect = false;
            wrGETURL.Timeout = 100000;
            string headers = wrGETURL.GetResponse().Headers.ToString();

            HttpWebResponse myHttpWebResponse = (HttpWebResponse)wrGETURL.GetResponse();
            StreamReader myStreamReadermy = new StreamReader(myHttpWebResponse.GetResponseStream(), Encoding.GetEncoding(1251));
            string page = myStreamReadermy.ReadToEnd();
            MessageBox.Show(page);

            Regex sidregex = new Regex("sid=([a-z0-9]+); exp");
            Match ssid = sidregex.Match(headers);
            string sid = ssid.Groups[1].Value;
            cook = new Cookie("remixsid", sid);

            if (String.IsNullOrEmpty(sid))
            {
                return false;
            }
            return true;
}

Заранее благодарствую :D

Ответить

  Ответы Всего ответов: 26  

Номер ответа: 1
Автор ответа:
 gekko



Вопросов: 39
Ответов: 127
 Web-сайт: kalamfur.ru
 Профиль | | #1
Добавлено: 05.04.11 21:48
классно) Парсер контакта. Но ИМХО на PHP проще и шустрее будет

Ответить

Номер ответа: 2
Автор ответа:
 gekko



Вопросов: 39
Ответов: 127
 Web-сайт: kalamfur.ru
 Профиль | | #2
Добавлено: 05.04.11 21:49
(не парсер, а только авторизация пока:))

Ответить

Номер ответа: 3
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #3
Добавлено: 06.04.11 00:38
недавно писал прогу, которая выдаёт прямые ссылки на мп3, из поиска по вконтакту. Но увы часть работы с сайтом я вынес в файл на JScript:) так что не поможет

Ответить

Номер ответа: 4
Автор ответа:
 AWP



ICQ: 345685652 

Вопросов: 96
Ответов: 1212
 Web-сайт: xawp.narod.ru
 Профиль | | #4
Добавлено: 06.04.11 03:12
а в моем мессенжере можно было плейлист из вконтакта прослушивать)

Ответить

Номер ответа: 5
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #5 Добавлено: 06.04.11 09:29
а в моей программе реализовано все то, что сделал Winand + закачка + загрузка + на пиво.
http://agentfire.no-ip.info/mp3_cluster.exe
форум
http://agentfire.no-ip.info/forum

Ответить

Номер ответа: 6
Автор ответа:
 BG(Алексей)



Вопросов: 26
Ответов: 295
 Профиль | | #6 Добавлено: 06.04.11 14:43
а в моей программе реализовано все то, ...

Не плохо было бы добавить возможность прослушивания во время загрузки.
А так же, очистку всего списка загрузки за один клик. В данный момент нужно кликнуть по каждому трэку.

Ответить

Номер ответа: 7
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #7 Добавлено: 06.04.11 15:23
Можно обвести все треки. А вот прослушивание, т.е. плеер, вскоре добавлю.

Ответить

Номер ответа: 8
Автор ответа:
 MISTER X



ICQ: 463865965 

Вопросов: 31
Ответов: 190
 Web-сайт: studioartf.ru
 Профиль | | #8
Добавлено: 06.04.11 21:21
Тааак))раз уж все работали с вк,может поможете ?))было бы не плохо и исходник какой нить программы(хоть отчасти) но это врятли)) или советы(примеры) для работы с ВК плз))ну оч надо)за пример кода буду оч признателен!)

Ответить

Номер ответа: 9
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #9 Добавлено: 06.04.11 22:24
Файл Mp3 Cluster Server\Account.vb
  1. Imports System.Text.RegularExpressions
  2.  
  3. Namespace Host.Vk
  4.     Public Class Account
  5.         Public Event OnBecomeActive As EventHandler
  6.  
  7.         Public Const EmailWildcard As String = "?*@?*.?*"
  8.         Public Const SessionGetIntervalMs As Int32 = 1000 'use the account only once in a second
  9.         Private Shared ReadOnly _ViewerId As New Regex("var[\t\r\n ]+user_id[\t\r\n ]+\=[\t\r\n ]+(?<value>[0-9]+)\;") 'var user_id = 10001683;
  10.         Private Shared ReadOnly _AuthHash As New Regex("var[\t\r\n ]+auth_hash[\t\r\n ]+\=[\t\r\n ]+\'(?<value>[0-9a-f]+)\'\;") 'var auth_hash = '2b6a05fe7987bc5f46';
  11.         Private Shared ReadOnly _SessionId As New Regex("\""sid\""\:\""(?<value>[0-9a-f]+)\""") '"sid":"2d60048d...40909d02"
  12.         Private Shared ReadOnly _Secret As New Regex("\""secret\""\:\""(?<value>[0-9a-f]+)\""") '"secret":"1698b50ad3"
  13.         Private Shared ReadOnly _Mid As New Regex("\""mid\""\:(?<value>[0-9a-f]+)") '"mid":"10001683"
  14.         Private Shared ReadOnly _Cookie As New Regex("name\=\'s\'[\t\r\n ]+value\=\'(?<cookie>[0-9a-f]+)\'") 'name='s' value='e050954f...ee908c7c'
  15.  
  16.         Private Shared ReadOnly _WaitAction As New Action(Of Int32)(AddressOf Threading.Thread.Sleep)
  17.         Private ReadOnly _Email As String
  18.         Private ReadOnly _Password As String
  19.         Private _Session As Vk.Session = Nothing
  20.         Private _Available As Boolean = False
  21.  
  22.         Private ReadOnly Property SignInData() As String
  23.             Get
  24.                 Return String.Format("email={0}&pass={1}&expire=&vk=", Email, Password)
  25.             End Get
  26.         End Property
  27.         Public Function PeekSession() As Session
  28.             Return _Session
  29.         End Function
  30.         Public Function GetSession() As Session
  31.             'Main thread
  32.             If Not HasSession Then Return Nothing
  33.             _Available = False
  34.             'Wait for the vk-spamblock interval to reactivate teh account
  35.             _WaitAction.BeginInvoke(SessionGetIntervalMs, AddressOf WaitEnded, Nothing)
  36.             Return _Session
  37.         End Function
  38.         Public ReadOnly Property HasSession() As Boolean
  39.             Get
  40.                 Return _Session IsNot Nothing AndAlso _Available
  41.             End Get
  42.         End Property
  43.         Public Sub TurnOff()
  44.             _Session = Nothing
  45.             _Available = False
  46.         End Sub
  47.  
  48.         Public Function UpdateSession() As Boolean
  49.             'Happens in ThreadPool
  50.             Dim ApplicationPage As String
  51.             Using WC As New Net.WebClient
  52.                 'Step 1 - Login and get the cookie
  53.                 WC.Headers(Net.HttpRequestHeader.Accept) = "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*"
  54.                 WC.Headers(Net.HttpRequestHeader.ContentType) = "application/x-www-form-urlencoded"
  55.                 WC.Headers(Net.HttpRequestHeader.UserAgent) = "Mozilla/4.0 (compatible; ICS)"
  56.                 Try
  57.                     ApplicationPage = WC.UploadString("http://login.vk.com/?act=login", "POST", SignInData)
  58.                 Catch
  59.                     Return False
  60.                 End Try
  61.                 Dim Cookie = _Cookie.Match(ApplicationPage).Groups.Item("cookie").Value
  62.                 If String.IsNullOrEmpty(Cookie) Then Return False
  63.  
  64.                 'Step 2 - Log in to the app server
  65.                 Dim Request = DirectCast(Net.WebRequest.Create("http://vkontakte.ru/login.php?app=8&layout=popup&type=browser&settings=8"), Net.HttpWebRequest)
  66.                 Request.Headers(Net.HttpRequestHeader.Cookie) = "remixclosed_tabs=0; remixchk=5; remixsid=" + Cookie
  67.                 Dim RelocatedUrl As Uri
  68.                 Try
  69.                     Using Response = Request.GetResponse, Stream = Response.GetResponseStream, R As New IO.StreamReader(Stream)
  70.                         ApplicationPage = R.ReadToEnd
  71.                         RelocatedUrl = Response.ResponseUri
  72.                     End Using
  73.                 Catch
  74.                     Return False
  75.                 End Try
  76.  
  77.                 'Step 3
  78.                 Dim SessionId, Secret, ViewerId As String
  79.                 If ApplicationPage.Contains("Login success") Then
  80.                     Dim Vars = Uri.UnescapeDataString(RelocatedUrl.Fragment)
  81.                     ViewerId = _Mid.Match(Vars).Groups.Item("value").Value
  82.                     SessionId = _SessionId.Match(Vars).Groups.Item("value").Value
  83.                     Secret = _Secret.Match(Vars).Groups.Item("value").Value
  84.                     If String.IsNullOrEmpty(ViewerId) Or String.IsNullOrEmpty(SessionId) Or String.IsNullOrEmpty(Secret) Then Return False
  85.                 Else
  86.                     Dim AppHash = _AuthHash.Match(ApplicationPage).Groups.Item("value").Value
  87.                     ViewerId = _ViewerId.Match(ApplicationPage).Groups.Item("value").Value
  88.                     If String.IsNullOrEmpty(AppHash) Or String.IsNullOrEmpty(ViewerId) Then Return False
  89.  
  90.                     'Step 3 - Authorizing
  91.                     WC.Headers(Net.HttpRequestHeader.Accept) = "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*"
  92.                     WC.Headers(Net.HttpRequestHeader.ContentType) = "application/x-www-form-urlencoded"
  93.                     WC.Headers(Net.HttpRequestHeader.UserAgent) = "Mozilla/4.0 (compatible; ICS)"
  94.                     WC.Headers(Net.HttpRequestHeader.Cookie) = "remixclosed_tabs=0; remixchk=5; remixsid=" + Cookie
  95.                     WC.Headers.Add("X-Requested-With", "XMLHttpRequest")
  96.                     Try
  97.                         Dim Data = String.Format("s={0}&act=auth_result&m=4&app=8&app_hash={1}", Cookie, AppHash)
  98.                         ApplicationPage = WC.UploadString("http://vkontakte.ru/login.php", "POST", Data)
  99.                     Catch
  100.                         Return False
  101.                     End Try
  102.                     SessionId = _SessionId.Match(ApplicationPage).Groups.Item("value").Value
  103.                     Secret = _Secret.Match(ApplicationPage).Groups.Item("value").Value
  104.                     If String.IsNullOrEmpty(SessionId) Or String.IsNullOrEmpty(Secret) Then Return False
  105.                 End If
  106.                 _Session = New Session(SessionId, Secret, ViewerId)
  107.             End Using
  108.             _Available = True
  109.             Return True
  110.         End Function
  111.  
  112.         Public ReadOnly Property Email() As String
  113.             Get
  114.                 Return _Email
  115.             End Get
  116.         End Property
  117.         Public ReadOnly Property Password() As String
  118.             Get
  119.                 Return _Password
  120.             End Get
  121.         End Property
  122.  
  123.         Public Sub New(ByVal Email As String, ByVal Password As String)
  124.             If Email Is Nothing Then Throw New ArgumentNullException("Email")
  125.             If Not Email.Trim Like EmailWildcard Then Throw New ArgumentException("Email parameter doesn't look like real e-mail")
  126.             If String.IsNullOrEmpty(Password) Then Throw New ArgumentNullException("Password")
  127.             _Email = Email.Trim.ToLower
  128.             _Password = Password
  129.         End Sub
  130.  
  131.         Private Sub WaitEnded(ByVal ar As IAsyncResult)
  132.             'Happens in ThreadPool. Account reactivated
  133.             _Available = True
  134.             _WaitAction.EndInvoke(ar)
  135.             RaiseEvent OnBecomeActive(Me, System.EventArgs.Empty)
  136.         End Sub
  137.  
  138.         Public Overrides Function GetHashCode() As Integer
  139.             Return _Email.GetHashCode Xor _Password.GetHashCode
  140.         End Function
  141.     End Class
  142. End Namespace

Ответить

Номер ответа: 10
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #10
Добавлено: 06.04.11 23:04
вот кусочек говнокода, используется WebForm, который можно найти на Сером Форуме.
  1. function retrieve(query, offset, email, pass) {
  2. var ret;
  3. WebForm.setStatus("search now");
  4. ret = search(query, offset);
  5. if(ret == false) {
  6. ret = "";
  7. WebForm.setStatus("login now");
  8. if(logon(email, pass)) {
  9. WebForm.setStatus("search now");
  10. ret = search(query, offset);
  11. if(ret == false) {
  12. ret = "";
  13. WebForm.setStatus("search failed due to login ussues");
  14. } else WebForm.setStatus("search done");
  15. } else WebForm.setStatus("cannot login to \"" + email + "\"");
  16. } else WebForm.setStatus("search done");
  17. return ret;
  18. }
  19.  
  20. function test() {
  21. return false;
  22. }
  23.  
  24. function search(what, offset) {
  25. WebForm.ResetData();
  26. WebForm.Action = "http://vkontakte.ru/gsearch.php?section=audio&q=" + what + "&offset=" + offset;
  27. WebForm.test(WebForm.Action)
  28. WebForm.Method = "GET";
  29. WebForm.Enctype = "application/x-www-form-urlencoded";
  30. XMLHTTP.open(WebForm.Method, WebForm.Action, true);
  31. XMLHTTP.setRequestHeader("Content-type", WebForm.Enctype);
  32. XMLHTTP.send(WebForm.VarBody);
  33. WebForm.WaitForXMLHTTPResponse();
  34. if(checklogon(XMLHTTP.responseText))
  35. return extractUrls(XMLHTTP.responseText);
  36. else return false;
  37. }
  38.  
  39. function logon(email, pass) {
  40. var s0;
  41. WebForm.ResetData();
  42. WebForm.Action = "http://login.vk.com/";//"http://vkontakte.ru/login.php";
  43. WebForm.Method = "POST";
  44. WebForm.Enctype = "application/x-www-form-urlencoded";
  45. WebForm.AddField("act", "login");
  46. WebForm.AddField("success_url", "");
  47. WebForm.AddField("fail_url", "");
  48. WebForm.AddField("try_to_login", "1");
  49. WebForm.AddField("to", "");
  50. WebForm.AddField("vk", "1");
  51. WebForm.AddField("al_test", "3");
  52. WebForm.AddField("email", email);
  53. WebForm.AddField("pass", pass);
  54.  
  55. XMLHTTP.open(WebForm.Method, WebForm.Action, true);
  56. XMLHTTP.setRequestHeader("Content-type", WebForm.Enctype);
  57. XMLHTTP.send(WebForm.VarBody);
  58. WebForm.WaitForXMLHTTPResponse();
  59. switch(XMLHTTP.status) {
  60. case 200: //OK
  61. WebForm.ResetData();
  62. s0 = XMLHTTP.responseText;
  63. WebForm.Action = "http://vk.com/login.php";
  64. WebForm.Method = "POST";
  65. WebForm.Enctype = "application/x-www-form-urlencoded";
  66. WebForm.AddField("s", getfield(s0, "s"));
  67. WebForm.AddField("op", getfield(s0, "op"));
  68. WebForm.AddField("redirect", "0");
  69. WebForm.AddField("expire", getfield(s0, "expire"));
  70. XMLHTTP.open(WebForm.Method, WebForm.Action, true);
  71. XMLHTTP.setRequestHeader("Content-type", WebForm.Enctype);
  72. XMLHTTP.send(WebForm.VarBody);
  73. WebForm.WaitForXMLHTTPResponse();
  74. switch(XMLHTTP.status) {
  75. case 200: //OK
  76. if(checklogon(XMLHTTP.responseText))
  77. return true;
  78. else return false;
  79. break;
  80. default: //Error
  81. WshShell.Popup(XMLHTTP.statusText, 0, XMLHTTP.status, 16);
  82. return false;
  83. }
  84. break;
  85. default: //Error
  86. WshShell.Popup(XMLHTTP.statusText, 0, XMLHTTP.status, 16);
  87. return false;
  88. }
  89. }
  90.  
  91. function checklogon(response) {
  92. return (response.indexOf("login.php") == -1);
  93. }
  94.  
  95. function getfield(response, field) {
  96. var p0, p1;
  97. p0 = response.indexOf("name='" + field + "'");
  98. if(p0 > -1) {
  99. p1 = response.indexOf("value='", p0);
  100. if(p1 > p0) {
  101. p0 = response.indexOf("'", p1+7);
  102. if(p0 > p1)
  103. return response.substring(p1+7, p0);
  104. else return "";
  105. }
  106. else return "";
  107. } else return "";
  108. }
  109.  
  110. function extractUrls(response) {
  111. var popr = 0, p0, p1, s0 = "", surl = "";
  112. popr = response.indexOf("return operate(", popr);
  113. while(popr > -1) {
  114. p0 = response.indexOf(",", popr);
  115. if(p0 > popr) {
  116. p1 = response.indexOf(",", p0+1);
  117. if(p1 > p0)
  118. surl = "http://cs" + response.substring(p0+1, p1) + ".vkontakte.ru/u";
  119. else return s0;
  120. p0 = response.indexOf(",", p1+1);
  121. if(p0 > p1)
  122. surl += response.substring(p1+1, p0) + "/audio/";
  123. else return s0;
  124. p1 = response.indexOf("'", p0+2);
  125. if(p1 > p0)
  126. surl += response.substring(p0+2, p1) + ".mp3";
  127. else return s0;
  128. s0 += surl + "\r\n";
  129. }
  130. else return s0;
  131. popr = response.indexOf("return operate(", ++popr);
  132. }
  133. return s0;
  134. }

Ответить

Номер ответа: 11
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #11
Добавлено: 06.04.11 23:08
AgentFire, всегда интересовало, каким образом работают подобные программы, если там не нужно указывать свой логин/пароль? Удобная штука кстати:) но почему треки скачиваются без покупки программы?)

Ответить

Номер ответа: 12
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #12 Добавлено: 07.04.11 10:19
Если купить, то не будет "красных" трэков, которые качать таки нельзя.

Ответить

Номер ответа: 13
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #13
Добавлено: 07.04.11 12:39
AgentFire, после сортировки столбцов красные треки становятся не красными

Ответить

Номер ответа: 14
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #14 Добавлено: 07.04.11 16:50
Скачивать их все равно нельзя. Но баг исправлю)

Ответить

Номер ответа: 15
Автор ответа:
 BG(Алексей)



Вопросов: 26
Ответов: 295
 Профиль | | #15 Добавлено: 08.04.11 00:39
Если купить, то не будет "красных" трэков, ...

А зачем покупать, если код открытый. Ты бы хоть обфускатором прошелся. Пока до кода можно свободно добраться, покупать не будут. Хотя...

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам