|
|
Читодел
OFFLINE
Регистрация: 09.04.2007
Сообщений: 965
Благодарностей:
36,565 всего
|
| |
|
Цитата:
Сообщение от Yukikaze
Странно, у меня вот так до сих пор работает
Код:
import re
import urllib
import httplib
import os
import argparse
import xml.etree.ElementTree as Xml
from urlparse import urlparse
def request(url, param="", headers={}, method="GET"):
if type(param) is dict:
param = urllib.urlencode(param)
uri = urlparse(url)
conn = httplib.HTTPConnection(uri.netloc)
conn.request(method, uri.path, param, headers)
return conn.getresponse(), conn
def getCookies(responce):
result = {}
cookies = responce.getheader('set-cookie')
if not cookies: # cookies not found
return result
temp = re.split(",(?= \w+[\w\d]*=)", cookies)
for cookie in temp:
slices = re.split('=|; ', cookie)
result.update({slices[0]: slices[1]})
return result
def parseArgs():
parser = argparse.ArgumentParser()
parser.add_argument("login", help="GameCenter@Mail.ru login")
parser.add_argument("password", help="GameCenter@Mail.ru password")
parser.add_argument("-s", "--server", help="login server address")
return parser.parse_args()
def main():
args = parseArgs()
split = args.login.split("@")
if len(split) < 2:
raise Exception("Bad email '{0}'".format(args.login))
login = split[0]
domain = split[1]
password = args.password
server = args.server or "178.22.90.182:1237"
params = {"Login": login, "Domain": domain, "Password": password}
resp, conn = request(
"http://win.mail.ru/cgi-bin/auth", params, method="POST")
conn.close()
cookies = getCookies(resp)
if 'Mpop' not in cookies:
raise Exception("Authorization failed")
mpop = cookies['Mpop']
url = 'http://authdl.mail.ru/sz.php?hint=AutoLogin'
params = '<?xml version="1.0" encoding="UTF-8"?>\
<AutoLogin ProjectId="3001" SubProjectId="0" ShardId="0" \
Mpop="%s"/>' % mpop
headers = {'User-Agent': 'Downloader/3810'}
resp, conn = request(url, params, headers, "POST")
xml = resp.read()
conn.close()
root = Xml.fromstring(xml)
uid = root.attrib['PersId']
token = root.attrib['Key']
if not os.path.isfile('archeage.exe'):
raise Exception("archeage.exe not found")
commandline = ' '.join(["start", "archeage.exe", "-r",
"+auth_ip " + server,
"-uid " + uid,
"-token " + token])
print "Starting client with", args.server or "default", "server"
os.system(commandline)
if __name__ == '__main__':
try:
main()
except Exception, e:
print e
Ну по крайней мере uid и token получаю, а дальше хз, принимает ли их сервер не проверял
ЗЫ Обращение к недопонявшим:
ЭТО НЕ МНОГООКОНКА, ИСПОЛЬЗУЯ ДАННЫЙ СКРИПТ ВЫ НЕ СМОЖЕТЕ ЗАПУСТИТЬ БОЛЕЕ ОДНОГО ОКНА
|
А заголовки можешь показать в ответе от win.mail.ru?
Мои:
PHP код:
HTTP/1.1 200 OK
Server: nginx
Date: Fri, 20 Jun 2014 11:31:31 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 367764
Connection: keep-alive
P3P: CP="NON CUR OUR IND UNI INT"
Cache-Control: no-cache,no-store,must-revalidate
Pragma: no-cache
Expires: Thu, 20 Jun 2013 11:31:31 GMT
Last-Modified: Fri, 20 Jun 2014 15:31:31 GMT
X-Frame-Options: SAMEORIGIN
X-Host: f428.i.mail.ru
X-XSS-Protection: 0
X-ETime: 0.051
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=16070400
Content-Security-Policy: default-src *.mail.ru *.imgsmail.ru *.attachmail.ru *.live.com *.youtube.com *.youtube.ru *.youtu.be *.rutube.ru *.vimeo.com *.smotri.com *.dailymotion.com *.rambler.ru *.ivi.ru *.videomore.ru *.gemius.pl *.weborama.fr *.adriver.ru *.serving-sys.com *.mradx.net;script-src 'unsafe-inline' 'unsafe-eval' *.mail.ru *.imgsmail.ru *.yandex.ru *.odnoklassniki.ru *.youtube.com *.dailymotion.com *.vimeo.com *.scorecardresearch.com; img-src *; style-src 'unsafe-inline' 'unsafe-eval' *.mail.ru *.imgsmail.ru; font-src data: *.imgsmail.ru; report-uri https://cspreport.mail.ru/;
Куками не пахнет
|