2010-12-12 71 views

回答

1

类似rapidshare的网站没有任何访问您的浏览器/下载管理器的权限。他们根据您的IP地址找出有关您的服务器下载的信息。

我不认为你可以做任何可以有这种权限的网络应用程序。

+0

几乎每个文件共享网站,我知道有一个支持下载加速器付费版本。如果您尝试从类似rapidshare的网站下载文件,那么如果您恰好使用FlashGet之类的下载管理器,则会阻止发生下载。 – ashwnacharya 2010-12-12 14:34:44

+0

这有点不同,他们检测代理访问url并允许根据请求访问。同样,如果下载用户不是高级会员,则他们会阻止来自同一ips的同时请求。 – crodjer 2010-12-12 14:39:35

1

你想防止什么?下载管理器本身并不是邪恶的。

你甚至怎么定义一个下载管理器?每个网页浏览器都有一个不同质量的集成下载管理器。

您应该尝试阻止下载管理者不喜欢的行为,而不是自己下载管理者。

  • 可以使用验证码防止自动下载(但可能并不总是工作,惹恼用户)
  • ,您可以通过允许每个IP只有一个下载防止多个并行下载。
+0

我只是好奇他们是如何工作的。用户代理是检测它的一种可能的方法。 – ashwnacharya 2010-12-12 14:35:27

2

当您是服务器时,您可以收到一些关于访问您的客户端的有趣信息。

其中一个参数是告诉你“用户代理”,或简单地说是浏览器类型。

在PHP中,它位于数组$ _SERVER(http://php.net/manual/en/reserved.variables.server.php)中。

在Dot Net中,我认为它是HttpRequest类的一部分(http://msdn.microsoft.com/en-us/library/system.web.httprequest.aspx)。

实时,你可以“询问”那些参数什么是客户端类型(IE,Firefox或独立客户端),并对它做出反应,比如阻止下载。

+0

是的,用户代理是一个好主意。但如果我没有弄错,它可能会被欺骗。 – ashwnacharya 2010-12-12 14:35:58

0

如果你的意思是防止可恢复和多连接下载你应该添加一个接受-范围:无头你响应

在Asp.net或Asp.net MVC:

Response.AddHeader("Accept-Ranges", "none");

为了更多地了解这个看Accept-Ranges