标题:摘录“ASP + Serv-u 实现FTP的代码” 出处:gOxiA=苏繁=SuFan Blog 时间:Wed, 04 Aug 2004 17:38:14 +0000 作者:gOxiA 地址:https://goxia.maytide.net/read.php/834.htm 内容: “ASP + Serv-u 实现FTP的代码”awaysrain [原作] <% '************************************************** '* 作者: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 Generated by Bo-blog 2.1.1 Release