关于“VSID自动作废”的使用说明

    微盾防盗链专家 V3.2.3.1064 版本为计算方式为“变化方式(相同的访问IP,随机产生不同的VSID)”增加了“VSID使用一次后,立刻作废”功能。
    该功能特别适合“在线试听”类网站!
    如下图所示:
   

    使用注意事项:
   
1,开启“VSID使用一次后,立刻作废”功能时,建议“有效时间”选择“使用用户 IP 地址作为有效时间的替换值”。
    2,因为随机产生的 VSID 使用一次就作废了,所以建议您一个网页内仅且只能放置一个被保护资源。
       解释一下:例如您的网站是“在线音乐试听站”,建议一个试听页面内放置一首试听音乐,如果放置两首或者两首以上那么只有第一首歌曲可以被播放。
    3,当一个页面必须放置两个或两个以上的被保护资源时,建议您做如下操作。
       第一:可以在调用新的资源时刷新页面。
       第二:用 IFRAME 的方法来刷新 VSID 页面,获取新的 VSID。详见下面的“IFRAME 刷新代码”。


    IFRAME 刷新代码
    下面的代码仅为开发人员提供。

  <script language="JavaScript">
/**
 *  获取新的 VSID
 */

function getvsid_from_vwiframe()
{
    var sNewVsid  = "";
    var oFrame    = document.getElementById("id_vsidiframe");
    var sRand     = parseInt( Math.floor( ( Math.random() )*10000 ) );
    var sVName    = "";
    var sVHtmlUrl = "/_sys_vw.html?js=yes&vname=" + sVName;
    var nPos;

    try
    {
        if ( oFrame )
        {
            // refresh iframe
            oFrame.src = sVHtmlUrl + "&t=" + sRand;

            // 刷新 iframe 获取的新的 VSID 您可以用将其作为参数添加在资源 URL 的后面
            nPos = document.cookie.indexOf( "virtualwall=vsid=" );
            if ( -1 != nPos )
            {
                sNewVsid = document.cookie.substr( nPos + 18 );
                nPos = sNewVsid.indexOf( ";" );
                if ( -1 != nPos )
                {
                    sNewVsid = sNewVsid.substr( 0, nPos );
                }
            }
        }
    }
    catch( e )
    {
    }

    return sNewVsid;
}
function get_url_with_new_vsid( sUrl )
{
    // 默认情况下使用 COOKIE 传递就可以了,不一定非要在每个资源 URL 后面添加上 vsid 参数
    // 如果服务端的防盗链专家配置了“接受来自 COOKIE 的 VSID 的话”,那么您仅仅需要简单调用一下 getvsid_from_vwiframe() 即可,无需修改播放链接

    return ( sUrl + "?vsid=" + getvsid_from_vwiframe() );
}

/**
 *  这个函数仅仅是为了演示
 *  实际中这个函数可能是某个页面连播列表的下一首歌曲控制函数。
 */

function refresh_player()
{
    var sUrl = "girl_of_my_dreams.mp3";
    var sUrlWithVsid = get_url_with_new_vsid( sUrl );

    document.getElementById("mediaplayer").FileName = sUrlWithVsid;
}
</script>


<iframe name="vsidiframe" id="id_vsidiframe" width=0 height=0 src="/_sys_vw.vhtml"></iframe>

<input type=button onclick="JavaScript:refresh_player();" value=" 播放下一首 " />

<object id="mediaplayer" classid="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95" codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,0,5,0803" standby="Loading Windows Media Player components..." type="application/x-oleobject" style="border:1px solid #666666;">
<param name="FileName" value="girl_of_my_dreams.mp3">
</object>