当前位置:K88软件开发文章中心编程语言AspAsp01 → 文章内容

ASP + Serv-u 实现FTP的代码

减小字体 增大字体 作者:佚名     来源:asp编程网  发布时间:2018-12-30 8:31:47

 
 
<
!--
#include file="md5.asp"-->
 
<
!--md5源码见http://www.aspprogram.cn/soft.asp?id=39-->

 
 
<
%
 
 
'**************************************************
 
 
'* 作者: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)) '密码荕D5加密过的,用动网的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


ASP + Serv-u 实现FTP的代码