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

ASP
ASP调用ORACLE存储过程并返回结果集
用ASP实现网页BBS
关于Global.asa文件的深入研究与session变量失效提示的具体方法
简易ASP+注册系统
防护手册:如何防止ASP木马在服务器上运行
用Visual Basic实现多画面播放功能之二
如何增强ASP程序性能(1)
如何增强ASP程序性能(2)
如何增强ASP程序性能(3)
ASP备份数据库
二十八条改善 ASP 性能和外观的技巧
在Form域中Post大于100K的数据
如何使用ASP制作模似动态生长的表单?
Microsoft IIS 真的如此「不安全」吗?(1)
Microsoft IIS 真的如此「不安全」吗?(2)
Microsoft IIS 真的如此「不安全」吗?(3)
Microsoft IIS 真的如此「不安全」吗?(4)
Microsoft IIS 真的如此「不安全」吗?(5)
关于页面和代码分离
ServerVariables 对路径的操作

ASP + Serv-u 实现FTP的代码


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