ASP + Serv-u 实现FTP的代码

serv-u

<!--#include file="md5.asp"-->
<%
'**************************************************
'* 作者:awaysrain(绝对零度) *
'* 完成时间:2003-10-10 *
'* 测试环境:WIN2000SERVER,SERV-U 4.2-beta版 *
'**************************************************
Dim iniPath,iniFileName,iniStr,tmpStr,n
Dim userName,passWord,tmp

userName = "myfso222" '用户名
passWord = "awaysrain" '密码
tmp = "ai" '随机生成两个小写字母,(应该是随机生成的,但是我这里省略了)
passWord = tmp & UCase(md5(passWord)) '密码,是MD5加密过的,用动网的MD5加密程序,具体算法是随机生成两位小写字母,然后和你的密码连接后进行MD5加密,把随机生成的密码和MD5加密后的结果作为密码存放,举个例子来说比如下面的awaysrain用户,我的密码为awaysrain先随机生成两位小写字母ai,和我的密码awaysrain连接得到aiawaysrain把aiawaysrain进行MD5加密得到9118BFD94A9CE9CF37AE5BAA947ED596把随机生成两位小写字母ai和MD5加密后的结果9118BFD94A9CE9CF37AE5BAA947ED596连接得到密码ai9118BFD94A9CE9CF37AE5BAA947ED596

iniPath="D:\Program Files\Serv-U" 'ini文件的路径
iniFileName = "ServUDaemon.ini" 'ini的文件名

Set fso=Server.CreateObject("Scripting.FileSystemObject")
Set ServUIni = fso.OpenTextFile(iniPath & "\" & iniFileName,1,false)

iniStr = ""
n = 0
addedUserList = false

Set tf = fso.CreateTextFile(iniPath & "\" & iniFileName & "._awaysrain.tmp", True)
'生成新的临时INI文件

Do While not ServUIni.AtEndOfStream
tmpStr = ServUIni.ReadLine

If Instr("awaysrain||" & tmpStr,"awaysrain||User")>0 Then
'记录用户原来的数量
n = n+1
End If

If Instr("awaysrain||" & tmpStr,"awaysrain||[USER=")>0 and not addedUserList Then
'往用户列表的部分添加现在的用户
n = n +1
tf.WriteLine("User" & n & "=" & userName & "|1|0")
addedUserList = true
End If
tf.WriteLine(tmpStr)
Loop
ServUIni.Close

'添加新用户的信息,具体内容可以在SERV-U中新建用户并对照INI文件

tf.WriteLine("[USER=" & userName & "|1]") '用户名
tf.WriteLine("Password=" & passWord) '密码
tf.WriteLine("HomeDir=e:\temp") '主目录
tf.WriteLine("RelPaths=1") '是否锁定用户于主目录
tf.WriteLine("MaxUsersLoginPerIP=1") '相同IP同时登录数
tf.WriteLine("SpeedLimitDown=102400") '最大下载速度
tf.WriteLine("TimeOut=600") '空闲超时时间(秒)
tf.WriteLine("Access1=E:\Temp|RLP") '可访问目录,可以不是一个,比如 'Access2=E:\Temp1|RLP'

tf.Close
'--------------------备份原来的INI文件--------------------------
Set f1 = fso.GetFile(iniPath & "\" & iniFileName)
f1.Copy (iniPath & "\" & iniFileName & "._awaysrain.bak")
f1.Delete
'--------------------把生成的临时INI文件改为正式的INI--------------------------
Set f1 = fso.GetFile(iniPath & "\" & iniFileName & "._awaysrain.tmp")
f1.Copy (iniPath & "\" & iniFileName)
f1.Delete

Set fso = nothing
%>

注:以上代码假设ServUDaemon.ini中的格式只有一个域并已经至少有一个用户

测试的ServUDaemon.ini文件结构如下:
==================================
[Domain1]
User1=222|1|0
User2=myfso111|1|0
[USER=222|1]
Password=hwB1ECF70CDAF5DAE2B981AE394EEFCDC0
HomeDir=E:\Temp
RelPaths=1
TimeOut=600
Access1=E:\Temp|RLP
[USER=myfso111|1]
Password=ai9118BFD94A9CE9CF37AE5BAA947ED596
HomeDir=e:\temp
RelPaths=1
TimeOut=600
Access1=E:\Temp|RLP

生成后的文件结构如下
==================================
[Domain1]
User1=222|1|0
User2=myfso111|1|0
User3=myfso222|1|0
[USER=222|1]
Password=hwB1ECF70CDAF5DAE2B981AE394EEFCDC0
HomeDir=E:\Temp
RelPaths=1
TimeOut=600
Access1=E:\Temp|RLP
[USER=myfso111|1]
Password=ai9118BFD94A9CE9CF37AE5BAA947ED596
HomeDir=e:\temp
RelPaths=1
TimeOut=600
Access1=E:\Temp|RLP
[USER=myfso222|1]
Password=ai9118BFD94A9CE9CF37AE5BAA947ED596
HomeDir=e:\temp
RelPaths=1
TimeOut=600
Access1=E:\Temp|RLP

附MD5.ASP
==========================================
<%
Private Const BITS_TO_A_BYTE = 8
Private Const BYTES_TO_A_WORD = 4
Private Const BITS_TO_A_WORD = 32

Private m_lOnBits(30)
Private m_l2Power(30)

Private Function LShift(lValue, iShiftBits)
If iShiftBits = 0 Then
LShift = lValue
Exit Function
ElseIf iShiftBits = 31 Then
If lValue And 1 Then
LShift = &

时间: 2025-01-31 01:59:55

ASP + Serv-u 实现FTP的代码的相关文章

ASP.NET Whidbey 中新的代码编译功能

asp.net|编译 ASP.NET Whidbey 中新的代码编译功能G. Andrew DuthieGraymad Enterprises, Inc. 2003 年 10 月 摘要:了解如何利用 ASP.NET Whidbey 更轻松地使用代码.Code 目录会自动为您的站点编译代码,而预编译会使部署工作更容易. 下载本文的源代码.(请注意,在示例文件中,程序员的注释使用的是英文,本文中将其译为中文是为了便于读者理解.) 目录简介新的模块化代码模型\Code 目录利息计算器预编译支持在位预编

ASP隐藏下载地址及防盗代码

ASP隐藏下载地址及防盗代码 以下为引用的内容: <% 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.FIle

ASP生成静态首页的示例代码

简单点的,ASP生成静态首页的示例代码 <% dim objXmlHttp,binFileData,objAdoStream set objXmlHttp = Server.CreateObject("Microsoft.XMLHTTP") objXmlHttp.open "GET","http://"&request.ServerVariables("HTTP_HOST")&"/index1.

ASP.NET程序中常用编程代码(一)

asp.net|编程|程序 1.为按钮添加确认对话框 Button1.Attributes.Add("onclick","return confirm('确认?')");button.attributes.add("onclick","if(confirm('are you sure...?')){return true;}else{return false;}") 2.删除表格选定记录 //获得DataGrid主键int i

《Asp.Net Forums2.0深入分析》之 Asp.Net Forums是如何实现代码分离和换

asp.net|代码分离 在Visual Studio中开发Web项目,Web 窗体页由两部分组成:视觉元素(HTML.服务器控件和静态文本)和该页的编程逻辑. 一般将这两个组成部分分别存储在一个单独的文件中.可视元素在一个 .aspx 文件中创建,而代码位于一个单独的类文件中(.aspx.vb 或 .aspx.cs).或者有时候也会在同一文件中创建视觉元素和代码. 而在Asp.Net Forums的Web窗体页中没有找到我们熟悉的.aspx.cs文件,也没有发现任何C#代码,取而代之是一个个控

ASP.NET共享ASP用户Session的方法及代码

  ASP.NET如何共享ASP中的用户Session,我们最初是考虑用构造FORM来自动提交传递ASP应用中的Session变量.例子如下:假设ASP应用的URL为http://127.0.0.1/asp/,那么我们需在ASP.NET的web.config中设定: 在ASP应用中增加两个ASP页面system.asp和autoPostForm.asp 请将上述代码保存为指定的文件名,以便测试.在ASP.net中,用页面getSession.aspx来接受传递过来的Session变量值: 上述代

ASP 微信公共平台接口实现代码

 bluedidea看到的ASP 微信公共平台接口实现代码,需要的朋友可以参考下 代码如下: <%@Language="VBScript" CodePage="65001"%> <% '********************************************** '注意事项 'ASP文件需要以UTF-8的格式保存,否则乱码. '以下两行代码是为了通过微信接口验证的. 'response.write request("ech

ASP.NET程序中常用编程代码

ASP.NET程序中常用编程代码 1.为按钮添加确认对话框 Button1.Attributes.Add("onclick","return confirm('确认?')");button.attributes.add("onclick","if(confirm('are you sure...?')){return true;}else{return false;}") 2.删除表格选定记录 //获得DataGrid主键in

java-简陋的ftp下载代码,小弟求助!

问题描述 简陋的ftp下载代码,小弟求助! 服务器代码: package day21.xl; import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.File; import java.io.FileFilter; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream;

asp.net发布后更改后台代码的问题

问题描述 asp.net发布后更改后台代码的问题 一个发布在服务器上的asp.net项目,没有源码. 比如现在我要改一个aspx页面的后台,但是后台代码都封装成dll,我用反编译软件找到后台的代码,然后复制出来,重新做成一个aspx.cs文件,然后把aspx的inherits重新指向后台.能进cs文件,但是cs文件报错: 编译器错误消息: CS0102: 类型"XXX"已经包含"XXX"的定义. 所有的定义变量都报这样的错,然后我把变量干掉,下面的方法又报这样的错.