分享
 
 
 

制作虚拟主机管理系统(二)

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

第二部分 技术难点及解决方案

一、技术难点

分析完整个系统的功能以后,我们来看一下关键的技术难点:

(1)在线实时开通FTP帐号;

(2)在线实时开通虚拟站点;

(3)在线实时开通EMAIL帐号;

(4)操作IIS/MSSQL/FTP/MAIL系统的启动、停止;

除以上难点以外,其他的功能无非就是简单的数据库录入、查询、修改、删除操作,所以,只要解决以上难点,系统即实现基本功能。

二、解决方案

(1)在线实时开通FTP帐号:

在这里,我们使用的FTP服务器端系统为Serv-U 6.0版,通过改写ServUDaemon.ini文件来增加、删除、修改用户。以下是增加FTP用户的原代码:

<%

'**************************************************

'* 原作者:awaysrain(绝对零度) *

'* 完成时间:2003-10-10 *

'* 修改时间:2005-01-11 *

'* 测试环境:WIN2000SERVER,SERV-U 6.0beta版 *

'**************************************************

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=D:\temp") '主目录

tf.WriteLine("RelPaths=1") '是否锁定用户于主目录

tf.WriteLine("MaxUsersLoginPerIP=1") '相同IP同时登录数

tf.WriteLine("SpeedLimitDown=102400") '最大下载速度

tf.WriteLine("TimeOut=600") '空闲超时时间(秒)

tf.WriteLine("Access1=D:\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

%>

这里我对原作者的程序进行了一点修改,把原有的对密码的加密去了,这样,存在INI文件中的密码是直接看见的,为什么要这样呢……因为6.0和4.2的加密算法好象不大一样(如果有知道加密算法的朋友请告诉我),而且,我们现在做虚拟主机管理系统的重点也不在这里,所以把这一部分舍去了。此处的SERV-U的设置有以下几点需要注意的:

1 必须已经有一个域,且有至少一个用户存在的情况下,才能成功。

2 因为去除了对密码的加密算法,所以在域的设置里的高级选项中的“将密码存储于加密的窗体中”选项去除。

(2)在线实时开通虚拟站点:

为了将来能满足域名转向功能,所以,我们这里要求在线实时开通“虚拟站点”,而不是开通“虚拟目录”,目录是不能控制转向的。

网上找了一些资料可以建立虚拟站点的,可是都失败了……不知道为什么,比如通过“ADSI修改IIS信息”,不行,提示“权限不够”。后来查了些资料,发现基本上都是通过c:\Inetpub\adminscript下的VBS脚本来实现对IIS的管理的,我通过ASP来调用时,出现了权限不够的问题,所有就换个思路,通过组件来调用这些脚本来控制IIS。

首先先些了个VB的组件:

一、建立一个ActiveX DLL工程

二、更改工程名ServerShell

三、更改类名:Cmd

四、修改类代码:

Public Function ServerCmd(strCMD)

Shell strCMD, vbHide

'就这么简单就行了!

End Function

五、生成并注册DLL文件

然后在ASP中调用这个组件

<%

set CMD = server.createobject("ServerShell.Cmd")

CMD.ServerCMD("cmd.exe /c C:\Inetpub\AdminScripts\mkw3site -r ""e:\inetpub"" -c ""db"" -o 88 -i 192.168.0.3 -h db -t ""testwebSite""")

'创建虚拟 Web 站点

'要创建虚拟 Web 站点,请在命令提示符下键入以下命令:

'Mkw3site -r 根目录 驱动器盘符:\文件夹名 -t 新服务器名 -h 主机名 www.我的新 Web 站点.com

%>

OK,现在可以通过“Internet 服务管理器”发现已经增加了一个testwebSite的虚拟站点了,这里对Adminscript下的脚本不做其他的解释了,有兴趣的朋友可以参考以下站点:

http://www.uudog.com/newscontent/IIS97.html

未完待续...

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有