2013-06-13 80 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