ASP + Serv-u 实现FTP的代码

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



<'% 
'************************************************** 
'* 作者: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

标签:Serv-u,ftp,代码,asp
0
投稿

猜你喜欢

  • Python猜解网站数据库管理员密码的脚本

    2024-01-23 16:55:02
  • Python实战之设计一个多功能办公小工具

    2023-05-26 02:54:11
  • pandas 对series和dataframe进行排序的实例

    2023-07-16 04:57:50
  • 使用实例管理器轻松管理多个MySQL实例

    2009-03-25 17:07:00
  • numpy中实现二维数组按照某列、某行排序的方法

    2022-07-16 00:18:03
  • MySQL的Query Cache图文详解

    2024-01-28 01:18:42
  • ChatGPT如何写好Prompt编程示例详解

    2022-06-30 03:55:24
  • python爬取各省降水量及可视化详解

    2023-08-04 15:19:57
  • 详细讲解如何删除Access数据库中的空记录

    2008-11-28 14:58:00
  • JavaScript Event学习第四章 传统的事件注册模型

    2024-05-09 10:38:04
  • 如何基于Python深度图生成3D点云详解

    2022-03-08 16:41:11
  • SQL Server数据库基本概念、组成、常用对象与约束

    2024-01-14 02:16:01
  • 如何将自己写的模块上传到pypi

    2022-06-19 10:47:06
  • django实现web接口 python3模拟Post请求方式

    2023-07-28 15:18:14
  • python3安装OCR识别库tesserocr过程图解

    2021-12-08 04:50:08
  • vue-router权限控制(简单方式)

    2024-05-28 15:42:35
  • Python利用flask sqlalchemy实现分页效果

    2023-10-05 16:36:21
  • Python3以GitHub为例来实现模拟登录和爬取的实例讲解

    2022-01-17 14:52:02
  • Vue提供的三种调试方式你知道吗

    2024-05-29 22:44:57
  • 不要犯WEB字体编辑的10种错误

    2008-08-19 12:55:00
  • asp之家 网络编程 m.aspxhome.com