; Авторизация
Func Login($email,$pass)
$data = "login_post_vars"
$oHTTP.Open("POST", "http://serverxxxxxxxx.com/login.php")
$oHTTP.setTimeouts(5000, 5000, 15000, 15000)
$oHTTP.SetRequestHeader("Accept", "*/*")
$oHTTP.SetRequestHeader("Accept-Language", "ru")
$oHTTP.SetRequestHeader("Content-Type","application/x-www-form-urlencoded")
$oHTTP.SetRequestHeader("User-Agent", $USER_AGENT)
$oHTTP.SetRequestHeader("Host","serverxxxxxxxx.com")
$oHTTP.SetRequestHeader("Content-Length",StringLen($data))
$oHTTP.SetRequestHeader("Proxy-Connection", "Keep-alive")
$oHTTP.SetRequestHeader("Pragma", "no-cache")
If $PROXY<>"" Then
$oHTTP.SetProxy(2,$PROXY)
EndIf
$oHTTP.Send($data)
$oHTTP.WaitForResponse
If @error Then
Return 0
EndIf
$headers = $oHTTP.GetAllResponseHeaders()
$resp = $oHTTP.Responsetext
If StringInStr($resp,"good")>0 Then
GetCookie($headers)
Return True
Else
Return False
EndIf
EndFunc
; Получаем cookie из заголовков ответа
Func GetCookie($headers)
Local $Cookie_String
$headers = StringSplit($headers,@LF)
For $i=1 to $headers[0]
If StringInStr($headers[$i],"Set-Cookie")>0 Then
$start = StringInStr($headers[$i],"Set-Cookie:")+12
$str = StringSplit(StringMid($headers[$i],$start),";")
$Cookie_String&= $str[1]&"; "
EndIf
Next
$Cookie_String = StringStripWS($Cookie_String,1)
$Cookie_String = StringStripWS($Cookie_String,2)
$Cookie_String = StringLeft($Cookie_String,StringLen($Cookie_String)-1)
$COOKIE = $Cookie_String
EndFunc
$COOKIE
Func GetCookie($headers)
$Cookie_String=StringSplit($headers,@CRLF);''
$COOKIE=StringRegExpReplace($Cookie_String[17],'.*e:\s(.*).*','\1')
EndFunc
Попробовал нечто подобное сделать на примере Вконтакте, не вышло: в конце сообщения привожу $resp.Выдрал кусок рабочего кода...
<html>
<head><title>400 Bad Request</title></head>
<body bgcolor="white">
<center><h1>400 Bad Request</h1></center>
<hr><center>nginx/0.7.59</center>
</body>
</html>
<!-- The padding to disable MSIE's friendly error page -->
<!-- The padding to disable MSIE's friendly error page -->
<!-- The padding to disable MSIE's friendly error page -->
<!-- The padding to disable MSIE's friendly error page -->
<!-- The padding to disable MSIE's friendly error page -->
<!-- The padding to disable MSIE's friendly error page -->
$data = "login_post_vars" ; login_post_vars - это надо писать, когда хочешь залогиниться?
$oHTTP.Open("POST", "http://serverxxxxxxxx.com/login.php") ; открываем соединение, пока понятно
$oHTTP.setTimeouts(5000, 5000, 15000, 15000) ; выставляем таймауты (для чего именно не знаю, но на данном этапе и не надо)
$oHTTP.SetRequestHeader("Accept", "*/*") ; что делает эта строка?
$oHTTP.SetRequestHeader("Accept-Language", "ru") ; что в этой строке переводится на русский язык?
$oHTTP.SetRequestHeader("Content-Type","application/x-www-form-urlencoded") ; что делает эта строка?
$oHTTP.SetRequestHeader("User-Agent", $USER_AGENT) ; что такое пользовательский агент?
$oHTTP.SetRequestHeader("Host","serverxxxxxxxx.com")
$oHTTP.SetRequestHeader("Content-Length",StringLen($data)) ; это ясно
$oHTTP.SetRequestHeader("Proxy-Connection", "Keep-alive"); прокси для чего это? не понимаю)
$oHTTP.SetRequestHeader("Pragma", "no-cache") ; это не понимаю
Я в этом совсем еще чайник) За ip брать @IPAddress1?El Panda сказал(а):Наверно ты не поверишь, но указывать нужно User Agent и Proxy в формате iport ;D
Я в этом совсем еще чайник) За ip брать @IPAddress1?А порт какой указывать?
Почему в функции Login($email,$pass) не используются ее параметры? Куда в функции написать $email,$pass, чтобы авторизоваться?
$sEmail="Мое мыло" ; тут, разумеется, ввожу реальные данные
$sPass="Мой пароль"
; Сначала проходим авторизацию
$oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
$oHTTP.Open("POST","http://vkontakte.ru/login.php")
$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","http://vkontakte.ru/login.php")
$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","vkontakte.ru")
$oHTTP.SetRequestHeader("Proxy-Connection", "Keep-alive")
$oHTTP.Send("login=" & $sEmail & "&pass=" & $sPass)
$oHTTP.WaitForResponse
; Теперь получаем исходный код страницы, когда мы уже авторизовались.
$oHTTP.Open("GET","http://vkontakte.ru/login.php")
$oHTTP.Send()
$oHTTP.WaitForResponse
MsgBox(0,0,$oHTTP.ResponseText)
Global $cookie
$sEmail=""
$sPass=""
Func login()
; Сначала проходим авторизацию
$oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
$oHTTP.Open("POST","http://login.vk.com/?act=login")
$oHTTP.setTimeouts(5000, 5000, 15000, 15000)
$oHTTP.SetRequestHeader("Accept", "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, */*")
$oHTTP.SetRequestHeader("Accept-Language", "ru")
$oHTTP.SetRequestHeader("Referer","http://vkontakte.ru")
$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","login.vk.com")
$oHTTP.SetRequestHeader("Proxy-Connection", "Keep-alive")
$oHTTP.Send('email='&$sEmail&'&pass='&$sPass&'&expire=&vk=')
$oHTTP.WaitForResponse
$resp=$oHTTP.ResponseText
;ДОстаем куки
$cookie=StringRegExp($resp,'.*ue=.(.*). />',3)
$cookie='remixsid='&$cookie[4]
;~ ConsoleWrite($cookie&@LF)
;~ _ArrayDisplay($cookie)
EndFunc
Func get()
$oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
$oHTTP.Open("POST", "http://vkontakte.ru/profile.php")
$oHTTP.SetRequestHeader("Cookie",$cookie)
$oHTTP.setTimeouts(5000, 5000, 15000, 15000)
$oHTTP.SetRequestHeader("Accept", "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, */*")
$oHTTP.SetRequestHeader("Accept-Language", "ru")
$oHTTP.SetRequestHeader("Referer","http://login.vk.com/?act=login")
$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","vkontakte.ru")
$oHTTP.SetRequestHeader("Proxy-Connection", "Keep-alive")
$oHTTP.Send("")
$oHTTP.WaitForResponse
$resp=$oHTTP.ResponseText
ConsoleWrite($resp&@LF)
EndFunc
login()
get()
Работает и без этого параметра, просто как было в плагине так и добавил.$oHTTP.Send('email='&$sEmail&'&pass='&$sPass&'&expire=&vk=')
- как вы узнали, что нужно к логину/паролю еще добавить '&expire=&vk=' ?
$oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
$oHTTP.Open("POST", "http://forum.v-galaktike.ru/login.php?do=login")
$oHTTP.setTimeouts(5000, 5000, 15000, 15000)
$oHTTP.SetRequestHeader("Host","forum.v-galaktike.ru")
$oHTTP.SetRequestHeader("User-Agent","Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.6)")
$oHTTP.SetRequestHeader("Accept","text/html,application/xhtml+xml,application/xml")
$oHTTP.SetRequestHeader("Accept-Language","ru")
$oHTTP.SetRequestHeader("Keep-Alive","115")
$oHTTP.SetRequestHeader("Cookie","bblastvisit=1283711132; bblastactivity=0; __utma=133405465.1418468191.1283711150.1283711150.1283711150.1; __utmb=133405465.2.10.1283711150; __utmc=133405465; __utmz=133405465.1283711151.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)")
$oHTTP.SetRequestHeader("Content-Type","application/x-www-form-urlencoded")
$oHTTP.SetRequestHeader("Content-Length","217")
$oHTTP.Send("vb_login_username=****&vb_login_password=&s=&securitytoken=guest&do=login&vb_login_md5password=****&vb_login_md5password_utf=****")
$oHTTP.WaitForResponse()
;Получаем куки
$resp = $oHttp.GetResponseHeader("Set-Cookie")
ConsoleWrite($resp & @CRLF)
$cookie = StringTrimRight($resp, 18)
ConsoleWrite($cookie & @CRLF)
Func login1()
; Сначала проходим авторизацию
; Сначала проходим авторизацию
$oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
$oHTTP.Open("POST","http://login.vk.com/?act=login")
$oHTTP.setTimeouts(5000, 5000, 15000, 15000)
$oHTTP.SetRequestHeader("Accept", "image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, */*")
$oHTTP.SetRequestHeader("Referer","http://vkontakte.ru/")
$oHTTP.SetRequestHeader("Accept-Language","ru")
$oHTTP.SetRequestHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; InfoPath.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)")
$oHTTP.SetRequestHeader("Content-Type","application/x-www-form-urlencoded")
$oHTTP.SetRequestHeader("Accept-Encoding"," gzip, deflate")
$oHTTP.SetRequestHeader("Host","login.vk.com")
;$oHTTP.SetRequestHeader("Content-Length","109")
$oHTTP.SetRequestHeader("Connection", "Keep-alive")
$oHTTP.SetRequestHeader("Cache-Control", "no-cache")
$oHTTP.Send('from_host=vkontakte.ru&captcha_key=&captcha_sid=&expire=&al_frame=1&email='&$email&'&pass='&$pass)
$oHTTP.WaitForResponse
$resp=$oHTTP.ResponseText
;ДОстаем куки
;$cookie=StringRegExp($resp,'.*ue=.(.*). />',3)
ConsoleWrite($resp&@LF)
; _ArrayDisplay($cookie)
EndFunc
‹