做一个下载网站,如何用ASP操纵server-u新开帐号?http://book.xker.com/CSDN/asppost6/web28160.htm

我的思路:下载网站只提供给注册会员,利用ASP给每个新开用户一个单独的serv-u帐号,该serv-u帐号在开通时作如下设置:1、用户从一个IP最多登录数量为1;2、最大下载速度为100K;3、目录访问只容许读取,不开通其他权限。下载时定向“ftp://帐号:密码@IP地址/目录/文件”进行下载,这样就可以控制盗链。
  这个问题烦我好久了,不知道哪位大哥可以帮忙这样做一下?
  我在别人下载网站上看见他这样实现过,我在论坛搜索过,有的就贴个“宁波科宇网”的代码不作任何说明,有的说用FSO并加密,都不得其解找不到完整的答案,但看别人的贴子应该有人成功过。不管是用组件还是FSO,只要您做成功过,请贴出较为完整代码共享经验,成功后马上结贴,分不够再开新贴给分,谢谢!

  如果您觉得单独交流好些,请给我发封邮件或加我QQ,我的邮件:hunan_man@163.com,QQ:76006108,不甚感激。
 回复人: N1rvana(新手上路) ( ) 信誉:116 2003-10-03 13:03:26Z 得分:0
 
 
?
http://cqzx.sdedu.net/downcenter/List.asp?id=35
http://www.chinaz.com/download/software.asp?SOFTWAREID=9162

我自己没做过,上面是帮你找的,看看试试吧。
Top
 
 回复人: jnyezhi(夜知@CNSW.ORG) ( ) 信誉:92 2003-10-03 13:48:43Z 得分:0
 
 
?
用serv-u plus吧,是一个很好用的插件,免费的
官方网站:http://www.plusxp.net/intro-SU.html
Top
 
 回复人: luok(罗开) ( ) 信誉:107 2003-10-03 17:15:57Z 得分:0
 
 
?
好象这里有讨论这个的文章了,搜一下呢。
Top
 
 回复人: datacomm(湘军一脉) ( ) 信誉:35 2003-10-08 08:15:25Z 得分:0
 
 
?
up
Top
 
 回复人: par(吾知道 par.2288.org) ( ) 信誉:40 2003-10-08 14:42:58Z 得分:0
 
 
?
“宁波科宇网”的代码是用FSO配置Serv-u.ini文件.你只要会用FSO组件就一看就明白了.
Top
 
 回复人: yllaji(51Hgame.com) ( ) 信誉:118 2003-10-08 21:15:27Z 得分:0
 
 
?
用 ntpostu 到 chinaz.com 下载

直接数据库操作支持sqlserver 适合大容量FTP客户(我估计 它什么数据库都支持 因为使用数据库链接字符串)
Top
 
 回复人: opolmzy(ASP)( 一寸木) ( ) 信誉:100 2003-10-09 09:34:46Z 得分:0
 
 
?
关注
Top
 
 回复人: formatkm(老革) ( ) 信誉:99 2003-10-09 09:48:07Z 得分:0
 
 
?
有个插件,是用数据库保存ser-u的用户信息,用asp操作那个数据库就可以了。
Top
 
 回复人: datacomm(湘军一脉) ( ) 信誉:35 2003-10-09 12:48:05Z 得分:0
 
 
?
formatkm(老革),愿闻其详。
Top
 
 回复人: alphayycn(阿尔法) ( ) 信誉:97 2003-10-09 17:20:18Z 得分:0
 
 
?
学习,先收藏。。再顶
Top
 
 回复人: sishuo(思铄) ( ) 信誉:98 2003-10-09 17:46:57Z 得分:0
 
 
?
http://www.plusxp.net/intro-SU.html

这个东西不错啊,可以收藏了,谢谢上面的这个兄弟!
Top
 
 回复人: chenyaoqiu(陈耀秋) ( ) 信誉:100 2003-10-09 18:56:36Z 得分:0
 
 
?
以下是我在一个动态开通FTP上传的网站上看到的代码,仅当参考

'-------开通FTP上传服务---------

dim mytextfile,myfileobject
Set myfileobject=server.createobject("scripting.filesystemobject")
set mytextfile=myfileobject.opentextfile("c:/Program Files/serv-u/ServUDaemon.ini",8)'也可能是Serv-u.ini               //此处是ServUD的安装路径
    mytextfile.writeline("[USER="&counter&"]")         //counter是开通账号
    mytextfile.writeline("password="&password)         //password我用户密码
    mytextfile.writeline("HomeDir=e:/.."&counter)      //e:/..为路径,下同
    mytextfile.writeline("RelPaths=1")
    mytextfile.writeline("ChangePassword=YES")
    mytextfile.writeline("SpeedLimit=20480")
    mytextfile.writeline("QuotaEnable=YES")
    mytextfile.writeline("QuotaMaxCurrent=20971520,0")
    mytextfile.writeline("TimeOut=600")
    mytextfile.writeline("Access1=E:/.."&counter&",RWAMCDLP")

'----------------------开通FTP上传服务结束-----------
Top
 
 回复人: datacomm(湘军一脉) ( ) 信誉:35 2003-10-10 08:25:39Z 得分:0
 
 
?
请问陈耀秋:password是明文的吗?能否给每个用户开访问两个目录?

另外请问各位大侠:ASP能向另外一台服务器的serv-u写用户吗?
Top
 
 回复人: awaysrain(绝对零度)(新的一年,新的开始) ( ) 信誉:155 2003-10-10 08:51:37Z 得分:0
 
 
?
密码是不是明文的要看你的SERV-U的设置

mytextfile.writeline("Access1=E:/.."&counter&",RWAMCDLP")
这里不是有Access1=……
你再写个 Access2=……就可以开两个目录
mytextfile.writeline("Access2=c:/.."&counter&",RWAMCDLP")

应该不可以向另外一台服务器的serv-u写
Top
 
 回复人: awaysrain(绝对零度)(新的一年,新的开始) ( ) 信誉:155 2003-10-10 10:58:20Z 得分:100
 
 
?
以下代码在SERV-U 4.2-beta版上测试通过
========================================================
<!--#include file="md5.asp"-->
<%
'**************************************************
'*	作者: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
%>

附MD5.ASP
============================
<%
Private Const BITS_TO_A_BYTE = 8
Private Const BYTES_TO_A_WORD = 4
Private Const BITS_TO_A_WORD = 32

Private m_lOnBits(30)
Private m_l2Power(30)
 
Private Function LShift(lValue, iShiftBits)
    If iShiftBits = 0 Then
        LShift = lValue
        Exit Function
    ElseIf iShiftBits = 31 Then
        If lValue And 1 Then
            LShift = &H80000000
        Else
            LShift = 0
        End If
        Exit Function
    ElseIf iShiftBits < 0 Or iShiftBits > 31 Then
        Err.Raise 6
    End If

    If (lValue And m_l2Power(31 - iShiftBits)) Then
        LShift = ((lValue And m_lOnBits(31 - (iShiftBits + 1))) * m_l2Power(iShiftBits)) Or &H80000000
    Else
        LShift = ((lValue And m_lOnBits(31 - iShiftBits)) * m_l2Power(iShiftBits))
    End If
End Function

Private Function RShift(lValue, iShiftBits)
    If iShiftBits = 0 Then
        RShift = lValue
        Exit Function
    ElseIf iShiftBits = 31 Then
        If lValue And &H80000000 Then
            RShift = 1
        Else
            RShift = 0
        End If
        Exit Function
    ElseIf iShiftBits < 0 Or iShiftBits > 31 Then
        Err.Raise 6
    End If
    
    RShift = (lValue And &H7FFFFFFE) / m_l2Power(iShiftBits)

    If (lValue And &H80000000) Then
        RShift = (RShift Or (&H40000000 / m_l2Power(iShiftBits - 1)))
    End If
End Function

Private Function RotateLeft(lValue, iShiftBits)
    RotateLeft = LShift(lValue, iShiftBits) Or RShift(lValue, (32 - iShiftBits))
End Function

Private Function AddUnsigned(lX, lY)
    Dim lX4
    Dim lY4
    Dim lX8
    Dim lY8
    Dim lResult
 
    lX8 = lX And &H80000000
    lY8 = lY And &H80000000
    lX4 = lX And &H40000000
    lY4 = lY And &H40000000
 
    lResult = (lX And &H3FFFFFFF) + (lY And &H3FFFFFFF)
 
    If lX4 And lY4 Then
        lResult = lResult Xor &H80000000 Xor lX8 Xor lY8
    ElseIf lX4 Or lY4 Then
        If lResult And &H40000000 Then
            lResult = lResult Xor &HC0000000 Xor lX8 Xor lY8
        Else
            lResult = lResult Xor &H40000000 Xor lX8 Xor lY8
        End If
    Else
        lResult = lResult Xor lX8 Xor lY8
    End If
 
    AddUnsigned = lResult
End Function

Private Function md5_F(x, y, z)
    md5_F = (x And y) Or ((Not x) And z)
End Function

Private Function md5_G(x, y, z)
    md5_G = (x And z) Or (y And (Not z))
End Function

Private Function md5_H(x, y, z)
    md5_H = (x Xor y Xor z)
End Function

Private Function md5_I(x, y, z)
    md5_I = (y Xor (x Or (Not z)))
End Function

Private Sub md5_FF(a, b, c, d, x, s, ac)
    a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_F(b, c, d), x), ac))
    a = RotateLeft(a, s)
    a = AddUnsigned(a, b)
End Sub

Private Sub md5_GG(a, b, c, d, x, s, ac)
    a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_G(b, c, d), x), ac))
    a = RotateLeft(a, s)
    a = AddUnsigned(a, b)
End Sub

Private Sub md5_HH(a, b, c, d, x, s, ac)
    a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_H(b, c, d), x), ac))
    a = RotateLeft(a, s)
    a = AddUnsigned(a, b)
End Sub

Private Sub md5_II(a, b, c, d, x, s, ac)
    a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_I(b, c, d), x), ac))
    a = RotateLeft(a, s)
    a = AddUnsigned(a, b)
End Sub

Private Function ConvertToWordArray(sMessage)
    Dim lMessageLength
    Dim lNumberOfWords
    Dim lWordArray()
    Dim lBytePosition
    Dim lByteCount
    Dim lWordCount
    
    Const MODULUS_BITS = 512
    Const CONGRUENT_BITS = 448
    
    lMessageLength = Len(sMessage)
    
    lNumberOfWords = (((lMessageLength + ((MODULUS_BITS - CONGRUENT_BITS) / BITS_TO_A_BYTE)) / (MODULUS_BITS / BITS_TO_A_BYTE)) + 1) * (MODULUS_BITS / BITS_TO_A_WORD)
    ReDim lWordArray(lNumberOfWords - 1)
    
    lBytePosition = 0
    lByteCount = 0
    Do Until lByteCount >= lMessageLength
        lWordCount = lByteCount / BYTES_TO_A_WORD
        lBytePosition = (lByteCount Mod BYTES_TO_A_WORD) * BITS_TO_A_BYTE
        lWordArray(lWordCount) = lWordArray(lWordCount) Or LShift(Asc(Mid(sMessage, lByteCount + 1, 1)), lBytePosition)
        lByteCount = lByteCount + 1
    Loop

    lWordCount = lByteCount / BYTES_TO_A_WORD
    lBytePosition = (lByteCount Mod BYTES_TO_A_WORD) * BITS_TO_A_BYTE

    lWordArray(lWordCount) = lWordArray(lWordCount) Or LShift(&H80, lBytePosition)

    lWordArray(lNumberOfWords - 2) = LShift(lMessageLength, 3)
    lWordArray(lNumberOfWords - 1) = RShift(lMessageLength, 29)
    
    ConvertToWordArray = lWordArray
End Function

Private Function WordToHex(lValue)
    Dim lByte
    Dim lCount
    
    For lCount = 0 To 3
        lByte = RShift(lValue, lCount * BITS_TO_A_BYTE) And m_lOnBits(BITS_TO_A_BYTE - 1)
        WordToHex = WordToHex & Right("0" & Hex(lByte), 2)
    Next
End Function
'未完,待续
Top
 
 回复人: awaysrain(绝对零度)(新的一年,新的开始) ( ) 信誉:155 2003-10-10 10:59:14Z 得分:0
 
 
?
'接上
Public Function MD5(sMessage)
    m_lOnBits(0) = CLng(1)
    m_lOnBits(1) = CLng(3)
    m_lOnBits(2) = CLng(7)
    m_lOnBits(3) = CLng(15)
    m_lOnBits(4) = CLng(31)
    m_lOnBits(5) = CLng(63)
    m_lOnBits(6) = CLng(127)
    m_lOnBits(7) = CLng(255)
    m_lOnBits(8) = CLng(511)
    m_lOnBits(9) = CLng(1023)
    m_lOnBits(10) = CLng(2047)
    m_lOnBits(11) = CLng(4095)
    m_lOnBits(12) = CLng(8191)
    m_lOnBits(13) = CLng(16383)
    m_lOnBits(14) = CLng(32767)
    m_lOnBits(15) = CLng(65535)
    m_lOnBits(16) = CLng(131071)
    m_lOnBits(17) = CLng(262143)
    m_lOnBits(18) = CLng(524287)
    m_lOnBits(19) = CLng(1048575)
    m_lOnBits(20) = CLng(2097151)
    m_lOnBits(21) = CLng(4194303)
    m_lOnBits(22) = CLng(8388607)
    m_lOnBits(23) = CLng(16777215)
    m_lOnBits(24) = CLng(33554431)
    m_lOnBits(25) = CLng(67108863)
    m_lOnBits(26) = CLng(134217727)
    m_lOnBits(27) = CLng(268435455)
    m_lOnBits(28) = CLng(536870911)
    m_lOnBits(29) = CLng(1073741823)
    m_lOnBits(30) = CLng(2147483647)
    
    m_l2Power(0) = CLng(1)
    m_l2Power(1) = CLng(2)
    m_l2Power(2) = CLng(4)
    m_l2Power(3) = CLng(8)
    m_l2Power(4) = CLng(16)
    m_l2Power(5) = CLng(32)
    m_l2Power(6) = CLng(64)
    m_l2Power(7) = CLng(128)
    m_l2Power(8) = CLng(256)
    m_l2Power(9) = CLng(512)
    m_l2Power(10) = CLng(1024)
    m_l2Power(11) = CLng(2048)
    m_l2Power(12) = CLng(4096)
    m_l2Power(13) = CLng(8192)
    m_l2Power(14) = CLng(16384)
    m_l2Power(15) = CLng(32768)
    m_l2Power(16) = CLng(65536)
    m_l2Power(17) = CLng(131072)
    m_l2Power(18) = CLng(262144)
    m_l2Power(19) = CLng(524288)
    m_l2Power(20) = CLng(1048576)
    m_l2Power(21) = CLng(2097152)
    m_l2Power(22) = CLng(4194304)
    m_l2Power(23) = CLng(8388608)
    m_l2Power(24) = CLng(16777216)
    m_l2Power(25) = CLng(33554432)
    m_l2Power(26) = CLng(67108864)
    m_l2Power(27) = CLng(134217728)
    m_l2Power(28) = CLng(268435456)
    m_l2Power(29) = CLng(536870912)
    m_l2Power(30) = CLng(1073741824)


    Dim x
    Dim k
    Dim AA
    Dim BB
    Dim CC
    Dim DD
    Dim a
    Dim b
    Dim c
    Dim d
    
    Const S11 = 7
    Const S12 = 12
    Const S13 = 17
    Const S14 = 22
    Const S21 = 5
    Const S22 = 9
    Const S23 = 14
    Const S24 = 20
    Const S31 = 4
    Const S32 = 11
    Const S33 = 16
    Const S34 = 23
    Const S41 = 6
    Const S42 = 10
    Const S43 = 15
    Const S44 = 21

    x = ConvertToWordArray(sMessage)
    
    a = &H67452301
    b = &HEFCDAB89
    c = &H98BADCFE
    d = &H10325476

    For k = 0 To UBound(x) Step 16
        AA = a
        BB = b
        CC = c
        DD = d
    
        md5_FF a, b, c, d, x(k + 0), S11, &HD76AA478
        md5_FF d, a, b, c, x(k + 1), S12, &HE8C7B756
        md5_FF c, d, a, b, x(k + 2), S13, &H242070DB
        md5_FF b, c, d, a, x(k + 3), S14, &HC1BDCEEE
        md5_FF a, b, c, d, x(k + 4), S11, &HF57C0FAF
        md5_FF d, a, b, c, x(k + 5), S12, &H4787C62A
        md5_FF c, d, a, b, x(k + 6), S13, &HA8304613
        md5_FF b, c, d, a, x(k + 7), S14, &HFD469501
        md5_FF a, b, c, d, x(k + 8), S11, &H698098D8
        md5_FF d, a, b, c, x(k + 9), S12, &H8B44F7AF
        md5_FF c, d, a, b, x(k + 10), S13, &HFFFF5BB1
        md5_FF b, c, d, a, x(k + 11), S14, &H895CD7BE
        md5_FF a, b, c, d, x(k + 12), S11, &H6B901122
        md5_FF d, a, b, c, x(k + 13), S12, &HFD987193
        md5_FF c, d, a, b, x(k + 14), S13, &HA679438E
        md5_FF b, c, d, a, x(k + 15), S14, &H49B40821
    
        md5_GG a, b, c, d, x(k + 1), S21, &HF61E2562
        md5_GG d, a, b, c, x(k + 6), S22, &HC040B340
        md5_GG c, d, a, b, x(k + 11), S23, &H265E5A51
        md5_GG b, c, d, a, x(k + 0), S24, &HE9B6C7AA
        md5_GG a, b, c, d, x(k + 5), S21, &HD62F105D
        md5_GG d, a, b, c, x(k + 10), S22, &H2441453
        md5_GG c, d, a, b, x(k + 15), S23, &HD8A1E681
        md5_GG b, c, d, a, x(k + 4), S24, &HE7D3FBC8
        md5_GG a, b, c, d, x(k + 9), S21, &H21E1CDE6
        md5_GG d, a, b, c, x(k + 14), S22, &HC33707D6
        md5_GG c, d, a, b, x(k + 3), S23, &HF4D50D87
        md5_GG b, c, d, a, x(k + 8), S24, &H455A14ED
        md5_GG a, b, c, d, x(k + 13), S21, &HA9E3E905
        md5_GG d, a, b, c, x(k + 2), S22, &HFCEFA3F8
        md5_GG c, d, a, b, x(k + 7), S23, &H676F02D9
        md5_GG b, c, d, a, x(k + 12), S24, &H8D2A4C8A
            
        md5_HH a, b, c, d, x(k + 5), S31, &HFFFA3942
        md5_HH d, a, b, c, x(k + 8), S32, &H8771F681
        md5_HH c, d, a, b, x(k + 11), S33, &H6D9D6122
        md5_HH b, c, d, a, x(k + 14), S34, &HFDE5380C
        md5_HH a, b, c, d, x(k + 1), S31, &HA4BEEA44
        md5_HH d, a, b, c, x(k + 4), S32, &H4BDECFA9
        md5_HH c, d, a, b, x(k + 7), S33, &HF6BB4B60
        md5_HH b, c, d, a, x(k + 10), S34, &HBEBFBC70
        md5_HH a, b, c, d, x(k + 13), S31, &H289B7EC6
        md5_HH d, a, b, c, x(k + 0), S32, &HEAA127FA
        md5_HH c, d, a, b, x(k + 3), S33, &HD4EF3085
        md5_HH b, c, d, a, x(k + 6), S34, &H4881D05
        md5_HH a, b, c, d, x(k + 9), S31, &HD9D4D039
        md5_HH d, a, b, c, x(k + 12), S32, &HE6DB99E5
        md5_HH c, d, a, b, x(k + 15), S33, &H1FA27CF8
        md5_HH b, c, d, a, x(k + 2), S34, &HC4AC5665
    
        md5_II a, b, c, d, x(k + 0), S41, &HF4292244
        md5_II d, a, b, c, x(k + 7), S42, &H432AFF97
        md5_II c, d, a, b, x(k + 14), S43, &HAB9423A7
        md5_II b, c, d, a, x(k + 5), S44, &HFC93A039
        md5_II a, b, c, d, x(k + 12), S41, &H655B59C3
        md5_II d, a, b, c, x(k + 3), S42, &H8F0CCC92
        md5_II c, d, a, b, x(k + 10), S43, &HFFEFF47D
        md5_II b, c, d, a, x(k + 1), S44, &H85845DD1
        md5_II a, b, c, d, x(k + 8), S41, &H6FA87E4F
        md5_II d, a, b, c, x(k + 15), S42, &HFE2CE6E0
        md5_II c, d, a, b, x(k + 6), S43, &HA3014314
        md5_II b, c, d, a, x(k + 13), S44, &H4E0811A1
        md5_II a, b, c, d, x(k + 4), S41, &HF7537E82
        md5_II d, a, b, c, x(k + 11), S42, &HBD3AF235
        md5_II c, d, a, b, x(k + 2), S43, &H2AD7D2BB
        md5_II b, c, d, a, x(k + 9), S44, &HEB86D391
    
        a = AddUnsigned(a, AA)
        b = AddUnsigned(b, BB)
        c = AddUnsigned(c, CC)
        d = AddUnsigned(d, DD)
    Next
    
    MD5 = LCase(WordToHex(a) & WordToHex(b) & WordToHex(c) & WordToHex(d))
    'MD5=LCase(WordToHex(b) & WordToHex(c))  'I crop this to fit 16byte database password :D
End Function
%>
Top
 
 回复人: awaysrain(绝对零度)(新的一年,新的开始) ( ) 信誉:155 2003-10-10 11:04:14Z 得分:0
 
 
?
注:以上代码假设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

 
==================================================================================== 一、程序简介:   本程序采用ms Access+ASP设计,以Serv-U原版软件为基础,无需购买任何插件,可让Serv-U具有用户在线实时注册、管理的功能。设置简单,适用范围广,可广泛地应用于空间提供商,论坛,学校机房,单位内部网等用Serv-U为用户提供FTP空间或FTP帐号的单位。 主要具有以下功能: 1.使Serv-U可自由地在线实时注册,管理更改Serv-U密码。 2.可自动创建用户帐号文件夹。 二、使用程序环境要求: 1.Serv-U6.0及以上版本(即可支持ODBC数据库管理的版本) 2.服务器具有FSO功能。 ==================================================================================== 三、安装关键步骤: 1.Serv-U的域类型:存储于ODBC数据库中 2.在ODBC 数据源管理器中建立系统数据源:ftp 3.打开Serv-U安装目录下的ServUDaemon.ini文件,以下操作: (1)用下面的代码覆盖原来的ODBCSource、ODBCTables、ODBCColumns ------------------------------------------ ODBCSource=ftp|| ODBCTables=user_accounts|group_accounts|user_access|group_access|user_IP_access|group_IP_access ODBCColumns=user|password|skey|homedir||access|disable||relpaths|||changepass|quotaenable||||maxusers|||ratioup|ratiodown|ratiocredit|quotacurrent|quotamax|expiration|privilege|passtype|ratiotype|groups|notes|indexno ------------------------------------------ (2)把“ReloadSettings=True”语句拷到每个节点的后面,如[GLOGAL]、[DOMAINS]、[Domain1]、[Domain2]等节后的后面 大家可参看《安装图示》文件夹中的图 ==================================================================================== 四、网站信息可在config.asp文件中按提示修改。 ==================================================================================== 五、其它说明: 1.本程序数据库为serv-u官方网站(http://www.serv-u.com/)提供的数据库修改而来。 2.为安全起见,请注意修改数据库名称。 3.本程序需要服务器具有FSO功能,如FSO没有权限。可以在后台测试是否能删除文件,解决FSO组件是否开启的方法如下:首先在系统盘中查找scrrun.dll,如果存在这个文件,请跳到第三步,如果没有,请执行第二步。 在安装文件目录i386中找到scrrun.dl_,用winrar解压缩,得scrrun.dll,然后复制到x(你的系统盘):\windows\system32\目录中。 运行regsvr32 scrrun.dll即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值