当前位置: 首页 > 图文教程 > 网络编程 > ASP > ASP + Serv-u 实现FTP的代码

ASP
ASP基础讲座(下)
解决IIS5 HTTP500内部错误
ASP 3.0高级编程(四十六)
ASP 3.0高级编程(四十五)
ASP 3.0高级编程(四十四)
ASP 3.0高级编程(四十三)
ASP 3.0高级编程(四十二)
ASP 3.0高级编程(四十一)
ASP 3.0高级编程(三十九)
ASP 3.0高级编程(三十八)
ASP 3.0高级编程(三十七)
ASP 3.0高级编程(三十六)
ASP 3.0高级编程(三十五)
ASP 3.0高级编程(三十四)
ASP 3.0高级编程(三十三)
ASP 3.0高级编程(三十二)
ASP 3.0高级编程(三十一)
ASP错误代码说明
jscript错误代码及相应解释大全
ASP错误处理

ASP + Serv-u 实现FTP的代码


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 66 ::
收藏到网摘: n/a


   <!--#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