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

ASP
Asp+Sql 对数据库的各种操作
ASP:6行代码实现无组件上传
ASP中几种分页显示的比较
ASP中数据库调用中常见错误的现象和解决
ASP实用技巧:强制刷新和判断文件地址
asp全站防止注入的代码
ASP如何获取客户端真实IP地址
ASP实现可显示和隐藏的树型菜单
如何用ASP获取真实IP地址
ASP与SQL数据库连接代码
拒绝攻击 万能Asp防注入代码
草根站长成长计划:跟我学新云采集入门(2)
ASP技巧:提高使用Request集合的效率
Asp用存储过程实现数据分页
做网页时常用的ASP函数
Asp编码优化技巧八则
ASP中Cache技术的应用
用ASP封IP的方法,防止固定IP垃圾留言
ASP实现一行多列显示方法实例程序
ASP实现动态添加表单内容的实例程序

ASP + Serv-u 实现FTP的代码


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 48 ::
收藏到网摘: 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