• 1
预览模式: 普通 | 列表

ASP下载功能实现 

 

将下边的文件保存为Download.asp就可以了,然后根据需要传要下载的文件过来就可以了。

  使用格式:Download.asp?FileName=要下载的文件名

  注意:FileName后边只能是要下载的文件名,文件所在的路径要在源代码里设置FilePath变量。当然这个变量也可以动态设置,方法两种:一、也是使用URL传递过来;二、从数据库中读去。至于如何设置,根据需要了。

 

 1 <%
 2 Dim Stream
 3 Dim Contents
 4 Dim FileName
 5 Dim FileExt
 6 Dim FilePath
 7 
 8 Rem 设置下载文件所在的路径,默认空,要下载的文件与当前文件在同一目录
 9 FilePath = ""
10 
11 Const adTypeBinary = 1
12 FileName = Request.QueryString("FileName")
13 if FileName = "" Then
14     Response.Write "无效文件名."
15     Response.End
16 End if
17 
18 Rem 下面是不希望下载的文件
19 FileExt = Mid(FileName, InStrRev(FileName, "."+ 1)
20 Select Case UCase(FileExt)
21     Case "ASP""ASA""ASPX""ASAX""MDB"
22         Response.Write "受保护文件,不能下载."
23         Response.End
24 End Select
25 
26 Rem 下载这个文件
27 Response.Clear
28 Response.ContentType = "application/octet-stream"
29 Response.AddHeader "content-disposition""attachment; filename=" & FileName
30 Set Stream = server.CreateObject("ADODB.Stream")
31 Stream.Type = adTypeBinary
32 Stream.Open
33 Stream.LoadFromFile Server.MapPath(FileName)
34 While Not Stream.EOS
35     Response.BinaryWrite Stream.Read(1024 * 64)
36 Wend
37 Stream.Close
38 Set Stream = Nothing
39 Response.Flush
40 Response.End
41 %>

查看更多...

分类:PHP教程 | 固定链接 | 评论: 2 | 查看次数: 7869

lcx不能转发ftp解决

 

 点击下载此文件

上次搞一个站的时候,用的FileZilla提权,当时挺郁闷的。用的lcx把FileZilla的端口发出来了,用户也加了,结果ftp搞死搞活愣是发不出来,想用别的工具转发一下,结果一时没搞到免杀的。当时用的是写了个bat直接在webshell上执行了,算是提权了。后来想想着下次可能会有类似的情况呢,于是写了这个东西。

我没看过lcx的源码~所以不知道为什么它不能转发ftp

查看更多...

Tags: lcx 端口 转发 mylcx

分类:网络安全 | 固定链接 | 评论: 1 | 查看次数: 8716

win7 搜索功能失效

修复win7 搜索功能失效时的方法

下载附件,双击里面的reg文件即可

虽然可能会提示有部分数据导入失败,但是搜索功能已经恢复。

点击下载此文件

分类:win7技术 | 固定链接 | 评论: 0 | 查看次数: 7521

驱动和应用层的三种通信方式

原文:sislcb(http://bbs.pediy.com/showthread.php?p=446641),表示感谢!

驱动程序和客户应用程序经常需要进行数据交换,但我们知道驱动程序和客户应用程序可能不在同一个地址空间,因此操作系统必须解决两者之间的数据交换。
驱动层和应用层通信,主要是靠DeviceIoControl函数,下面是该函数的原型:
BOOL DeviceIoControl ( 
HANDLE hDevice, // 设备句柄 
DWORD dwIoControlCode, // IOCTL请求操作代码 
LPVOID lpInBuffer, // 输入缓冲区地址 
DWORD nInBufferSize, // 输入缓冲区大小 
LPVOID lpOutBuffer, // 输出缓冲区地址 
DWORD nOutBufferSize, // 输出缓冲区大小 
LPDWORD lpBytesReturned, // 存放返回字节数的指针 
LPOVERLAPPED lpOverlapped // 用于同步操作的Overlapped结构体指针 
);

查看更多...

分类:内核探究 | 固定链接 | 评论: 0 | 查看次数: 11268

完整的分发函数

NTSTATUS ccpDispatch(PDEVICE_OBJECT device,PIRP irp)
{
PIO_STACK_LOCATION irpsp = IoGetCurrentIrpStackLocation(irp);
NTSTATUS status;
ULONG i,j;
    // 首先要知道发送给了哪个设备。设备最多一共有CCP_MAX_COM_ID
// 个,是前面的代码保存好的,都在s_fltobj中
for(i=0;i<CCP_MAX_COM_ID;i++)
{
if(s_fltobj[i] == device)
{   
// 所有电源操作,全部直接放过
if(irpsp->MajorFunction == IRP_MJ_POWER)
{
// 直接发送,然后返回说已经被处理了
PoStartNextPowerIrp(irp);
IoSkipCurrentIrpStackLocation(irp);
return PoCallDriver(s_nextobj[i],irp);
}
// 此外我们只过滤写请求。写请求,获得缓冲区及其长度
// 然后打印
if(irpsp->MajorFunction == IRP_MJ_WRITE)
{
// 如果是写,先获得长度
ULONG len = irpsp->Parameters.Write.Length;
// 然后获得缓冲区
PUCHAR buf = NULL;
if(irp->MdlAddress != NULL)
buf =
(PUCHAR)MmGetSystemAddressForMdlSafe(
irp->MdlAddress,NormalPagePriority);
else
buf = (PUCHAR)irp->UserBuffer;
if(buf == NULL)
buf = (PUCHAR)irp->AssociatedIrp.SystemBuffer;
                // 打印内容
for(j=0;j<len;++j)
{
DbgPrint("comcap: Send Data: %2x\r\n",
buf[j]);
}
}
            // 这些请求直接下发执行即可,我们并不禁止或者改变它
IoSkipCurrentIrpStackLocation(irp);
return IoCallDriver(s_nextobj[i],irp);
}
}
    // 如果根本就不在被绑定的设备中,那是有问题的,直接返回参数错误
irp->IoStatus.Information = 0;
irp->IoStatus.Status = STATUS_INVALID_PARAMETER;
IoCompleteRequest(irp,IO_NO_INCREMENT);
return STATUS_SUCCESS; 
}
分类:内核探究 | 固定链接 | 评论: 0 | 查看次数: 8635

HTTP协议详解

引言                                       

HTTP 是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和 扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。
HTTP协议的主要特点可概括如下:
1.支持客户/服务器模式。
2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系 的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时 间。
5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这 样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。



查看更多...

分类:c/c++ | 固定链接 | 评论: 0 | 查看次数: 7560

asp获取真实ip

Function getIP()
Dim strIPAddr
If Request.ServerVariables("HTTP_X_FORWARDED_FOR") = "" or InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), "unknown") > 0 Then

strIPAddr = Request.ServerVariables("REMOTE_ADDR")

ElseIf InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",") > 0 Then
strIPAddr = Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), 1, InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",")-1)

ElseIf InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ";") > 0 Then
strIPAddr = Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), 1, InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ";")-1)

Else
strIPAddr = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
End If
getIP = Trim(Mid(strIPAddr, 1, 30))

End Function


使用这个函数能获得真实的ip地址,而不会是http代理服务器的地址
分类:PHP教程 | 固定链接 | 评论: 1 | 查看次数: 5963
  • 1
博主QQ: 友情链接请找我
QQ群: 灰色档案
返回顶部 关闭