2010-04-28 22 views
12

में एक धार है, तो मुझे यूआरएल लेने के लिए सबसे अच्छा तरीका क्या है: http://foobar.com/foo.torrent और जांचें कि वास्तव में यह एक धार है, न कि एक HTML पृष्ठ या कुछ और मजाकिया। सुझाव? धन्यवाद :)जांचें कि यूआरएल सी # .NET

+6

सभी डाउन-वोट क्यों? मैंने सोचा कि यह एक प्रासंगिक सवाल था। –

+1

मुझे लगता है कि कुछ लोग 'धार' शब्द देखते हैं और तुरंत "समुद्री डाकू खराब" और डाउनवोट जाते हैं। – bobince

उत्तर

1

धार फ़ाइल विनिर्देश पढ़ें, फिर यूआरएल की सामग्री डाउनलोड करने के लिए एक सी # ऐप लिखें और देखें कि यह विनिर्देशन में नियमों को पूरा करता है या नहीं।

3

शायद इसे डाउनलोड करने और उसे सत्यापित करने और/या सामग्री प्रकार की जांच करने के लिए सबसे अच्छा application/x-bittorrent है।

+3

ध्यान दें कि कई वेब-सर्वर सही सामग्री-प्रकार वाली फ़ाइलों की सेवा नहीं करते हैं। इसलिए यदि वेब-सर्वर सामग्री-प्रकार '" एप्लिकेशन/ऑक्टेट-स्ट्रीम "देता है, तो यह अभी भी असंभव नहीं है कि फ़ाइल एक धार फ़ाइल है। – dtb

4

यह जानने का एकमात्र तरीका है कि यह वास्तव में एक धार फ़ाइल है या नहीं, यह जांचना है कि यह torrent file है या नहीं।

0

यदि आप कुछ सी ++ सीखने के इच्छुक हैं तो आप libtorrent लाइब्रेरी को एक पी/Invoke के साथ बाहरी कॉल कर सकते हैं, मुझे लगता है कि फाइलों को सत्यापित करने का एक तरीका है।

11

इसे डाउनलोड करने के बिना एक संसाधन के प्रकार की जाँच करने के लिए, एक HEAD अनुरोध का उपयोग करें:

WebRequest request= WebRequest.Create("http://foobar.com/foo.torrent"); 
request.Method= "HEAD"; 
WebResponse response= request.GetResponse(); 
if (response.Headers.Get("Content-Type")=="application/x-bittorrent") { 
    ... 

हालांकि, प्रकार application/x-bittorrent कुछ सर्वर में स्थापित नहीं किया जा सकता है, इसलिए आप application/octet-stream बजाय मिल सकता है संभव है, या यदि आप दुर्भाग्यपूर्ण हैं तो text/plain भी। यदि आपको इसके लिए खाते की आवश्यकता है, तो आप जो भी कर सकते हैं, वह सामान्य जीईटी अनुरोध के साथ फाइल लाने के लिए होगा, और देखें कि क्या आप इसे डीकोड कर सकते हैं।

बिटटोरेंट फ़ाइल प्रारूप 'बेनकोड' नामक प्रारूप के आसपास आधारित है। Here's एक .NET लाइब्रेरी जो इसे संभालने का दावा करती है। आप किसी भी फ़ाइल का अनुमान लगा सकते हैं जो वैध बेनकोड एक धार फ़ाइल है, लेकिन यदि आप यह सुनिश्चित करना चाहते हैं कि आप मैपिंग को देख सकें तो यह info और announce गुणों के लिए डीकोड करता है और जांचता है।

+2

अच्छा खोज और अच्छी व्याख्या! +1 – tobsen

1

प्रदान किए गए अच्छे उत्तर के लिए additon में, आप monotorrent ओपन सोर्स सी # कार्यान्वयन पर भी देख सकते हैं। वे पूरी .torrent फ़ाइल डाउनलोड करें और बाद में बेनकोड पार्स करें (सीएफ .: http://anonsvn.mono-project.com/viewvc/trunk/bitsharp/src/MonoTorrent/MonoTorrent.Common/Torrent.cs लाइन 611 एफ)

1

मैं MonoTorrent लाइब्रेरी का उपयोग करूंगा। विशेष रूप से, आप स्थिर विधि

Torrent.TryLoad(Uri url, string location, out Torrent torrent) 

जो एक बूलियन मान एक वैध धार फ़ाइल के लिए कि क्या url पैरामीटर अंक का संकेत वापस आ जाएगी इस्तेमाल कर सकते हैं।

संबंधित मुद्दे