2013-06-13 58 views
4

好吧,所以我有一个奇怪的问题继续,我不完全知道如何解释...基本上我试图解码bencode文件(.torrent文件)现在我已经尝试了4个或5个不同的脚本,我已经通过谷歌和SO发现了没有运气(得到这样的回报,从同一不是字典或输出错误)wget和curl以某种方式修改bencode文件时下载

现在我下载的.torrent文件,像这样

wget http://link_to.torrent file 
//and have also tried with curl like so 
curl -C - -O http://link_to.torrent 

和我得出的结论是有事情发生到文件当我用这种方式下载时。 之所以这样做是因为我发现了这个网站,其中will decode a .torrent file you upload online显示文件中包含的信息。但是,当我下载一个.torrent文件时,不只是通过浏览器单击链接,而是使用上述方法之一,它也不起作用。 因此,有没有人遇到类似的问题,使用这些方法之一,发现问题的解决方案,甚至解释为什么会发生这种情况? 我可以;吨发现很多网上关于它也不知道解决方法,我可以用我的服务器

更新: 没关系,是由@建议coder543通过浏览器与wget的比较下载的文件大小。他们是不一样的大小使用wget风格的结果在一个较小的文件大小,所以很明显,问题是wget & curl不是别的东西..想法?

Updat 2: 好了,所以我曾经尝试这样做,现在几次,我缩小的问题一点点,这个问题似乎只在torcache和torrage链接出现。来自其他网站的链接似乎正常工作或预期......所以这里有一些链接,我的成绩从thrre不同的方法:

*** differnet sizes*** 
http://torrage.com/torrent/6760F0232086AFE6880C974645DE8105FF032706.torrent 
    wget -> 7345 , curl -> 7345 , browser download -> 7376 

*** same size*** 
http://isohunt.com/torrent_details/224634397/south+park?tab=summary 
wget -> 7491 , curl -> 7491 , browser download -> 7491 

*** differnet sizes*** 
http://torcache.net/torrent/B00BA420568DA54A90456AEE90CAE7A28535FACE.torrent?title=[kickass.to]the.simpsons.s24e12.hdtv.x264.lol.eztv 
wget -> 4890 , curl-> 4890 , browser download -> 4985 

    *** same size*** 
http://h33t.com/download.php?id=cc1ad62bbe7b68401fe6ca0fbaa76c4ed022b221&f=Game%20of%20Thrones%20S03E10%20576p%20HDTV%20x264-DGN%20%7B1337x%7D.torrent 
    wget-> 30632 , curl -> 30632 , browser download -> 30632 

    *** same size*** 
http://dl7.torrentreactor.net/download.php?id=9499345&name=ubuntu-13.04-desktop-i386.iso 
wget-> 32324, curl -> 32324, browser download -> 32324 

*** differnet sizes*** 
http://torrage.com/torrent/D7497C2215C9448D9EB421A969453537621E0962.torrent 
wget -> 7856 , curl -> 7556 ,browser download -> 7888 

所以,我似乎在某些网站,但网站这确实上正常运行torcache.net和torrage.com提供文件。现在,如果我可以使用不直接依赖缓存的其他网站,那将会很好,但是我正在使用bitsnoop API(它将所有数据从torrage.com中抽取出来,因此它不是一个真正的选项),如果有人有任何想法关于如何解决这个问题或步骤来寻找解决方案,将不胜感激!

即使任何人都可以重现reults,将不胜感激! ...我的服务器是在64位架构和笔记本电脑12.04 LTS我试过实际下载比较上是一样的

+0

请提供链接至少一个破碎的洪流,所以我们可以尝试。我测试了[官方的debian映像](http://cdimage.debian.org/debian-cd/7.0。0/amd64/bt-dvd/debian-7.0.0-amd64-DVD-1.iso.torrent),并且所有三种方式产生相同的输出并且解码器也可以在其上工作。 – Jester

+0

@Jester嘿我更新问题与一些链接文件不工作似乎不工作的唯一文件的文件是从torrage.com和torcache.net产生的洪流缓存,其中链接到kat.ph,bitsnoop和更多,所以从这些网站的一切似乎不起作用 – brendosthoughts

回答

6

对于文件中使用命令行工具检索我得到:

$ file 6760F0232086AFE6880C974645DE8105FF032706.torrent 
6760F0232086AFE6880C974645DE8105FF032706.torrent: gzip compressed data, from Unix 

果然,使用gunzip进行解压缩将会产生正确的输出。 展望是服务器的,给人有趣的线索:

$ wget -S http://torrage.com/torrent/6760F0232086AFE6880C974645DE8105FF032706.torrent 
--2013-06-14 00:53:37-- http://torrage.com/torrent/6760F0232086AFE6880C974645DE8105FF032706.torrent 
Resolving torrage.com... 192.121.86.94 
Connecting to torrage.com|192.121.86.94|:80... connected. 
HTTP request sent, awaiting response... 
    HTTP/1.0 200 OK 
    Connection: keep-alive 
    Content-Encoding: gzip 

那么服务器会报告它发送gzip压缩的数据,但wget和卷曲忽略这一点。 curl有一个--compressed开关,它可以正确地为你解压缩数据。即使对于未压缩的文件,这也应该是安全的,它只是告诉http服务器客户端支持压缩,但在这种情况下,curl会查看接收到的头文件以确定它是否真的需要解压缩。

+0

啊......这是有道理的。感谢压缩作品的卷曲方法,非常感谢 – brendosthoughts

+0

我的英雄!你为我节省了很多时间,我非常非常难过 – ZirconCode