iis6通过isapi_rewrite限制迅雷下载阳光影视资源
现在有一个需求,学校用IIS做的vod点播,服务器地址不小心泄露了,有人用迅雷直接从服务器上下载影片,服务器压力骤增,我想做个东西,实现下面功能:
普通用户只允许在线点播(即通过播放器访问),已知播放器的user-agent为Novasoft+NetPlayer/4.0
指定ip的用户可以无限制访问
限制
服务器是win2003+IIS,这个基本不可能动
因为服务器上已经有很多资源了,要求已有文件路径不能动
因为面对数w用户,性能不能太差
我想的办法:
1.写一个webpy程序,检查ip,在列表则无限制,否则,检查user-agent,如果不是Novasoft+NetPlayer/4.0则拒绝访问,问题是如果可以访问,如何返回影视文件?
2.编写IIS扩展,不知python可以吗(我只会python)
请教各位大
这个我最早发在 CPyUG,得到的建议各种各样,我尝试了pywin32里面的ISAPI的示例,可惜失败了,毕竟我不是天才,短时间写不出ISAPI扩展来,后来决定用“阿暖”的建议,“直接写rewrite不行么”。
我搜索了下,在IIS上实现rewrite的工具 http://www.helicontech.com/download-isapi_rewrite3.htm ,最早测试的是2.x的版本,后来发现有3.x,功能类似于apache的rewrite模块,我想这样文档好找就用这个吧,经过无数次测试修正,最终的配置如下:
RewriteEngine on
RewriteCond %{REMOTE\_ADDR} !(^202.xxx.xxx|203.xxx.xxx) #此处xxx请用真实IP段代替
RewriteRule (.\*) - \[F\] \[L\]
RewriteCond %{HTTP\_USER\_AGENT} !(^Novasoft)
RewriteRule (.\*) - \[F\]
测试好后,发到群里:
阳光影视限制下载的功能已经做好 现在测试一下
1.请大家从开始菜单打开 网络媒体播放器 打开url输入 http://202.xxx.xxx.xxx/01.rmvb 看是否能播放
2.请大家打开http://202.xxx.xxx.xxx/看是否能浏览
3.请大家把http://202.xxx.xxx.xxx/01.rmvb粘到迅雷或者快车里面 看 是否能下载
预期的情况是 能播放 不能浏览 也不能下载
请大家告知测试结果 谢谢
目前已部署至服务器,暂未出现问题