Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查URL是否是C#NET中的torrent_C#_.net_Bittorrent - Fatal编程技术网

检查URL是否是C#NET中的torrent

检查URL是否是C#NET中的torrent,c#,.net,bittorrent,C#,.net,Bittorrent,对于我来说,最好的方式是什么来获取url:并检查这是否真的是一个torrent,而不是html页面或其他有趣的东西。 建议? 谢谢:)阅读torrent文件规范,然后编写一个C#app来下载URL的内容,看看它是否符合规范中的规则。下载并验证它和/或检查内容类型是否为application/x-bittorrent知道它是否真的是一个torrent文件的唯一方法是下载它并检查它是否是一个文件。如果是的话愿意学习一些C++,你可以用P/UngCK给图书馆做一个外部调用,我是舒尔,它有一种验证文件的

对于我来说,最好的方式是什么来获取url:并检查这是否真的是一个torrent,而不是html页面或其他有趣的东西。 建议?
谢谢:)

阅读torrent文件规范,然后编写一个C#app来下载URL的内容,看看它是否符合规范中的规则。

下载并验证它和/或检查内容类型是否为
application/x-bittorrent

知道它是否真的是一个torrent文件的唯一方法是下载它并检查它是否是一个文件。

如果是的话愿意学习一些C++,你可以用P/UngCK给图书馆做一个外部调用,我是舒尔,它有一种验证文件的方法。p> 要在不下载资源的情况下检查资源的类型,请使用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
。如果您需要解释这一点,那么您所能做的就是使用正常的GET请求获取文件,并查看是否可以对其进行解码


BitTorrent文件格式基于名为“bencode”的格式。声称可以处理它的.NET库。您可以猜测任何有效的bencode文件都是torrent文件,但是如果您想确保您可以查看它解码到的映射,并检查
信息
公告
属性。

除了提供的好答案bobince外,您还可以查看开源c#实现。他们下载整个.torrent文件,然后解析bencode(参见第611ff行)

我会使用这个库。具体来说,您可以使用静态方法

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

它将返回一个布尔值,指示
url
参数是否指向有效的torrent文件。

为什么所有的否决票都被否决?我认为这是一个相关的问题。我认为有些人看到“torrent”这个词,马上就会说“盗版很糟糕”并投反对票。请注意,许多web服务器提供的文件的内容类型不正确。因此,如果web服务器返回内容类型
“application/octet stream”
,那么该文件仍然不可能是torrent文件。