Many mobile phone ringtone websites have their own anti-leeching program, but this program is only designed to prevent gentlemen, not thieves. Let’s briefly introduce the function: an ASP object ServerVariables (server environment variable) is used. Through this environment variable, the real download address can be obtained and then the integrity of the real address can be destroyed through some simple VBS built-in functions. Achieve the function of deceiving downloading software. The source code is now attached for everyone to learn from.
Copy the code code as follows:
<% FunctIon DownloadFIle(StrFIle)
StrFIlename=StrFIle
Response.Buffer=True
Response.Clear
Set S=Server.CreateObJect(ADODB.Stream)
S.Open
S.Type=1
on Error Resume Next
Set Fso=Server.CreateObJect(ScrIptIng.FIleSystemObJect)
If Not Fso.FIleExists(StrFIleName) Then
From_Url=Cstr(Request.ServerVarIables(HTTP_REFERER))
Serv_Url=Cstr(Request.ServerVarIables(SERVER_NAME))
If MId(From_Url,8,len(Serv_Url)) <> Serv_Url Then
Response.WrIte The file does not exist or has been deleted.
Response.End
End If
Response.RedIrect Request.ServerVarIables(HTTP_REFERER)
Response.End
End If
FileExt=MId(StrFIlename,InStrRev(StrFIleName, .)+1)
Select Case UCase(FIleExt)
Case ASP, ASA, ASPX, ASAX, MDB, PHP, JSP, SHTML, HTML, HTM, TV, DATA
From_Url=Cstr(Request.ServerVarIables(HTTP_REFERER))
Serv_Url=Cstr(Request.ServerVarIables(SERVER_NAME))
If MId(From_Url,8,len(Serv_Url)) <> Serv_Url Then
Response.WrIte The file does not exist or has been deleted.
Response.End
End If
Response.RedIrect Request.ServerVarIables(HTTP_REFERER)
Response.End
End Select
Set F=Fso.GetFIle(StrFIlename)
IntFIlelength=F.SIze
s.LoadFromFIle(StrFIlename)
If Err Then
From_Url=Cstr(Request.ServerVarIables(HTTP_REFERER))
Serv_Url=Cstr(Request.ServerVarIables(SERVER_NAME))
If MId(From_Url,8,len(Serv_Url)) <> Serv_Url Then
Response.WrIte The file data is incomplete or damaged.
Response.End
End If
Response.RedIrect Request.ServerVarIables(HTTP_REFERER)
Response.End
End If
Set Upload=Server.CreateObJect(PersIts.Upload)
If Upload Is Nothing Then
Response.AddHeader Content-DIsposItIon,attachment; FIlename=&F.Name
Response.AddHeader Content-Length,IntFilelength
Response.CharSet=UTF-8
Response.ContentType=application/x-download
Response.BinaryWrite S.Read
Response.Flush
S.Close
Set s=NothIng
Else
Upload.SendBinary StrFIlename,True,application/x-download,False
End If
End Function
%>
Use: <%Call DownloadFIle(DownloadFIle)%>.