← Recent posts

一个空格引发的血案——Aria2c下载窘转不能解决

2011-04-14 · 22 comments

这是一个历史性遗留问题,之前一直没解决。这两天在写aria2的前端,于是把这个历史遗留问题提到了日程最前。

 

问题如下:

wget和curl和aria2c,三个工具用同一cookie,同一referer去请求窘转的同一文件,结果只有aria2会得到提取码错误的页面。

 

猜想:

Agent问题,遂加上如下参数 -U 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_7; en-us) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27'

 

结果依旧。

 

于是

sudo port install netcat

nc -l -p 8080

讲请求的host改成localhost:8080之后,分别抓得请求如下:

 

 

GET /ftn_handler/1c9e94a8f3f4a153cbf26642f1ec5cfccc24ef3b793d41a1736006dc55189d149da1ed2389c819b5969c55ff725d63d96ac317eead18aea0d6f149407fbfaf7b/%5Bgfgf5zc%40kf%402dj%5DMaria+Holic.part01.rar?k=3e663461336477e7f779bc751564051c50545502020506024857500507490355560719580b550e1e56550700565d0156075707073342376802005307061e54730e007453570e6a7e04145d00132c585f0c051a115216430354484600416470&fr=00&&txf_fid=417058511c7baa1ee8bc39b9fcab721256dd4d47 HTTP/1.0
Referer: http://mail.qq.com/cgi-bin/ftnExs_download?k=3e663461336477e7f779bc751564051c50545502020506024857500507490355560719580b550e1e56550700565d0156075707073342376802005307061e54730e007453570e6a7e04145d00132c585f0c051a115216430354484600416470&t=exs_ftn_download&code=ef4a3d73
User-Agent: Wget/1.12 (darwin10.7.0)
Accept: */*
Host: localhost:8080
Connection: Keep-Alive
Cookies: qm_ftn_key=56dd4***

[ misuzi Misuzis-Mac ~ ] nc -l -p 8080
GET /ftn_handler/1c9e94a8f3f4a153cbf26642f1ec5cfccc24ef3b793d41a1736006dc55189d149da1ed2389c819b5969c55ff725d63d96ac317eead18aea0d6f149407fbfaf7b/%5Bgfgf5zc%40kf%402dj%5DMaria+Holic.part01.rar?k=3e663461336477e7f779bc751564051c50545502020506024857500507490355560719580b550e1e56550700565d0156075707073342376802005307061e54730e007453570e6a7e04145d00132c585f0c051a115216430354484600416470&fr=00&&txf_fid=417058511c7baa1ee8bc39b9fcab721256dd4d47 HTTP/1.1
User-Agent: aria2/1.11.1
Accept: */*,application/metalink4+xml,application/metalink+xml
Host: localhost:8080
Pragma: no-cache
Cache-Control: no-cache
Referer: http://mail.qq.com/cgi-bin/ftnExs_download?k=3e663461336477e7f779bc751564051c50545502020506024857500507490355560719580b550e1e56550700565d0156075707073342376802005307061e54730e007453570e6a7e04145d00132c585f0c051a115216430354484600416470&t=exs_ftn_download&code=ef4a3d73
Cookies:qm_ftn_key=56dd4***

 

嗯,我相信敏感的人一眼就会看出问题,没错,aria2的请求少了这么一个空格!

Cookies:[空格!]qm_ftn_key=******

你*的腾讯,你丫server端解析cookie的能力就这么差么,就差了这么一个空格,结果导致会parse不到

于是手工添加了一个空格,搞定。收工。

 

 

这文章是在给自己短期内最后一个项目铺底——Aria2Atom

项目目标:Python后端实现下载session管理,并通过web.py制作一个类似transmission-cli的前台

1:实现服务器的下载工具远程管理。

2:给自己的mac的下载也全部转移到aria2c上完成,目前已知的80%的下载工具,测试结果都是个棒槌,没有一个好用的。

 

目前已经有一个测试的demo写出来了,不过写的比较渣,通过pickle来持久和还原session,试用后虽然已经用在了生产环境上,不过感觉还是很差,于是推倒了重新用SqlAlchemy来管理持久化对象,预计周末出发前搞定雏形并跑在生产环境下。作为长期项目抽时间进行维护。

 

P.S.

SQLAlchemy的PickleType真是个好东西。

Comments (22)

cunhan cunhan
2011-04-14 01:43 · ##1
我记下最后一句话了
kita kita
2011-04-14 11:07 · ##3
kita第一次知道aria2的說。。。
話說現在kita的下載工具就是mldonkey、transmission什麼的
2011-04-14 11:09 · ##4
@kita:
mldonkey太渣,驴子和普通bt资源已经直接丢离线了,pt用transmission,于是各种网盘,离线回挂资源需要一个比较稳定强力的下载工具...于是折腾了iget之类的,貌似对cookie的处理都有点问题,而且速度上也一般。于是,就有了把linux下的东西搬回来的想法,只是重新做个前端而已~
kita kita
2011-04-14 11:13 · ##5
@EmiNarcissus:kita的mldonkey到還好,話說現在用普通下載的比較多的說
2011-04-14 11:15 · ##6
@kita:
mldonkey普通下载缺少用户验证,添加cookie,referer之类的。
自己基本一添加任务就是几百个link,而且需要远程web或者console管理。
win下可以用idm,linux下一直用命令行的aria2c,当时就想写前端,不过没动力,现在系统稳定了,于是打算疼一疼~
kita kita
2011-04-14 11:17 · ##7
@EmiNarcissus:kita說的普通下載是瀏覽器內置的下載的說,一添加任務就幾百個link。。。O_O
2011-04-14 11:19 · ##8
@kita:

内置单线现在...下离线还可以,其他东西就很难满速了。。。如果上光纤了估计就没有这么多麻烦了。。233~
kita kita
2011-04-14 11:20 · ##9
@EmiNarcissus:吼吼,畫畫的時候喝睡覺的時候是不會在意的說
2011-04-14 11:22 · ##10
@kita:

偶尽量7*24保持满速,路由端做好qos,保证看视频不卡就okay,嗯。。算是大学时期留下的强迫症了
kita kita
2011-04-14 11:24 · ##11
@EmiNarcissus:一個個補很辛苦的吧,不知道有沒有好好的整理分類的說
2011-04-14 11:26 · ##12
@kita:

嗯,整理分类。。。还没上raid。。。上raid后再考虑分类整理问题了,现在就是用简单的记事本+Tree目录的方式来记录文件就好了。
2011-04-14 16:55 · ##13
于是当年mail.qq告诉SMTP端口应该填写465于是白白浪费4时间||||坑爹啊||
2011-04-14 17:56 · ##15
只用过wget的小白妹抖路过。
2011-04-14 22:43 · ##16
不懂技术表示鸭梨大TAT
Mucid Mucid
2011-04-15 19:44 · ##17
这是搞神马呢……
2011-04-17 21:51 · ##18
围观群众表示看不懂文章……表示写一些生活文章哈,擦汗
2011-04-18 10:49 · ##19
腾讯的狗血东西就是这么恶心。。。当初分析TX的一个啥东西的HTTP请求来着,也是空格引起的。尼玛的TX不能把你那渣服务器搞好点啊,搞得我想把他的服务器轰成灰……
2011-04-18 23:07 · ##21
@linfcstmr'牙医叔叔: @人好哇!:

介tx就一垃圾it工厂,之前写过一个中转站parsing脚本,还试图写一个上传客户端,结果发现丫居然对数据作自签名了。。。。

@卢松松:

呃,其实只是个错误记录而已。

@lovee:
哎朵,其实这个真的不是神马技术东西,只是想吐槽tx这个作的太缺德了。之前就这个问题想了很久很久,就是没想起来抓包看看...
其实即使抓包,不细心的话这么一个空格是很容易被忽略掉的。

@shekck:
之前花了3天时间写了一个aria2c的管理工具,于是这个其实只是个补充而已。生活文不太好写,自己写出来总觉得像流水账,而且最近跑动比较少,于是,嗯,至少写点技术文混更新...~其实偶好想写篇吐槽列车秩序的文。



@Mucid:

dt...仅此而已。

@星野苍真:
又被扣上了奇怪的帽子...~
2011-04-19 00:15 · ##22
@EmiNarcissus:
哈哈,谁让TX这么jian呢~什么都要抄~又不注重质量控制,于是就这么悲剧了~~

Leave a comment