网络编程
位置:首页>> 网络编程>> Asp编程>> ASP + Serv-u 实现FTP的代码

ASP + Serv-u 实现FTP的代码

作者:awaysrai  发布时间:2009-02-02 09:52:00 

标签:Serv-u,ftp,代码,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)) '密码是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

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com