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粘到迅雷或者快车里面 看 是否能下载
预期的情况是 能播放 不能浏览 也不能下载 
请大家告知测试结果 谢谢


目前已部署至服务器,暂未出现问题

2011-06-17 00:03124