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

一、技术难点
分析完整个系统的功能以后,我们来看一下关键的技术难点:
(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

另外,这里事实上还有一个简单的办法,不需要经过组件一样能达到效果:
<%
Set Shell = Server.CreateObject("WScript.Shell") 
cmd = "cmd.exe /c C:/Inetpub/AdminScripts/mkw3site -r ""e:/inetpub"" -c ""db"" -o 88 -i 192.168.0.3 -h db -t ""testwebSite"""
Shell.Run cmd,1, True
%>
因为有些服务器会把WSCRIPT对象禁止掉,所以就无法正常用了。

未完待续...

制作虚拟主机管理系统(二)相关推荐

  1. 制作虚拟主机管理系统

    制作虚拟主机管理系统 前言 公司有两台服务器空着--没什么作用,打算明年拿来做虚拟主机业务. 网上找了一些虚拟主机的管理系统,没什么用,基本上都是数据库操作,非常少有对FTP.IIS.MAIL操作的考 ...

  2. 制作虚拟主机管理系统(一)

    前言 公司有两台服务器空着--没什么作用,打算明年拿来做虚拟主机业务. 网上找了一些虚拟主机的管理系统,没什么用,基本上都是数据库操作,很少有对FTP.IIS.MAIL操作的考虑了半天 ,还是自己写一 ...

  3. wdcp服务器/虚拟主机管理系统,wdcp服务器/虚拟主机管理系统1.1发布(最后更新20110423)...

    wdcp服务器/虚拟主机管理系统1.1发布 (最后更新20110423,查看更新日志) wdcp (WDlinux Control Panel) 是一套用PHP开发的Linux服务器管理系统,旨在易于 ...

  4. 华众6.5虚拟主机管理系统SQL注入漏…

    华众6.5虚拟主机管理系统SQL注入漏洞利用 本篇文章来源于 黑基网-中国最大的网络安全站点 原文链接:http://www.hackbase.com/tech/2012-01-17/65830.ht ...

  5. 服务器上安装n点虚拟主机,N点虚拟主机管理系统之①-运行N点

    N点虚拟主机管理系统个人版是针对主机.邮局.数据库等产品销售时效率低.管理难等问题而自主研发的集产品自动化开通.管理.续费.升级等功能为一体的软件系统.按<Win 2003 全新安装N点虚拟主机 ...

  6. CentOS 5 安装免费虚拟主机管理系统Kloxo

    之前介绍过使用LNMP一键安装包配置Web服务器环境.配置环境虽然简单,但往后维护服务器的工作都是通过SSH,这还是需要学习一定的命令的.对于不想学命令而直接使用CentOS VPS的新手来说,我们推 ...

  7. N点虚拟主机管理系统(For Windows2003/2008)功能及介绍

    N点虚拟主机管理系统是针对销售 主机.邮局.数据库等产品时效率低.管理难等问题而自主研发的集产品自动化开通.管理.续费.升级等功能为一体的软件系统.通过一年多的改进与运作,软件已具有功能强大.安全稳定 ...

  8. 慧林系统多服务器授权,慧林虚拟主机管理系统

    慧林虚拟主机管理系统 内容精选 换一换 Ubuntu服务器通过Windows操作系统上的虚拟机安装的场景下,需要在Windows操作系统上安装USB网卡驱动,即RNDIS(Remote Network ...

  9. 主机屋虚拟主机php版本,5款免费虚拟主机管理系统(云虚拟主机管理)

    大家来推荐一下,虚拟主机管理系统哪家比较好呢?看过pesk,慧林,蓝芒,. 蓝芒的吧,虚拟主机管理系统好,服务态度超赞的. WINDOWS一般用的是IIS..建议你还是用LINUX系统吧.. L1型( ...

最新文章

  1. 老程序员都去哪儿了?
  2. 你需要知道的Android View的布局
  3. Windows 10 powershell 中文乱码解决方案
  4. AQS理解之四—看看我们写的和 ReentrantLock 的公平不公平锁的区别
  5. how is SAP OData count implemented in the backend
  6. Java日志框架-logback的介绍及配置使用方法(纯Java工程)
  7. hpunix查看oracle监听,hp-ux 网络查看
  8. 红橙Darren视频笔记 代理模式 动态代理和静态代理
  9. swift int转string_用Swift开发macOS程序,九、目录模块
  10. ASA 5520配置failover及双出口
  11. 【数据结构】3、模拟银行窗口排队叫号系统——C++
  12. 游戏 Npk文件解压
  13. php+分割文本文件,python实现:将文本文件分割成多个小文本文件(php也可实现)...
  14. windows上开启winrm服务
  15. Linux的磁盘分区、基本目录结构
  16. IDEA常用快捷键,修改后更好用
  17. 【SQL SERVER】将查询结果转换为字符串
  18. 什么是熵,信息熵以及粗糙熵
  19. poj2455 Secret Milking Machine(二分答案+最大流)
  20. java -jar 参数说明

热门文章

  1. 2020 双节假期后的感悟
  2. 申请有效期一年的网站免费证书
  3. CSS权威指南(八)基本元素框
  4. python电商案例分析项目
  5. Java实现身份证信息比较大小
  6. 模拟微信浏览器抓取数据
  7. js 延迟加载的方式有哪些?
  8. linux误删表空间文件,不小心删除了表空间数据文件   如何处理
  9. 青岛一中2021年高考成绩查询,2021年青岛高考各高中成绩及本科升学率数据排名及分析...
  10. 数值计算方法与c语言工程函数库 pdf,数值计算方法与C语言工程函数库