使用ODBC数据库管理Serv-U的FTP用户及相关ASP编程[附源码示例下载]

Serv-U是一种被广泛运用的FTP服务器端软件,支持3x/9x/ME/NT/2K等全Windows系列。可以设定多个FTP服务器、限定登录用户的权限、登录主目录及空间大小等,功能非常完备。 它具有非常完备的安全特性,支持SSl FTP传输,支持在多个Serv-U和FTP客户端通过SSL加密连接保护您的数据安全等。

Serv-U 支持基于ODBC数据库的用户和用户组设置,这为我们基于Serv-U编程提供了良好的接口,接下来我们介绍如何具体实现。

一、使用ODBC数据库管理Serv-U
前提条件:企业版的Serv-U(4.1以上版本)才能够支持ODBC,常见可支持的数据库包括access、mysql、oracle和mssql等。

Serv-U英文官方网站上提供了部分数据库示例,本站提供下载,请选择:
·Access示例:MS Access ODBC Example
·Ms SQL示例:MS SQL Server ODBC Example·MySQL示例:MySQL ODBC Example
·Oracle创建表结构的SQL文件:Oracle database for use with Serv-U

以下以Ms SQL为例介绍使用方法
1、安装好Serv-U企业版(4.1以上版本),创建一个新的域,在第四步中,域类型选择“存储于ODBC数据库中”,如图:

2、下载MS SQL Server ODBC Example示例包,获得CreateServUTables.sql(用于在mssql中创建Serv-U的对应表结构)文件,并在mssql中执

行该文件,创建六个表,分别为:
·ftp_users
·ftp_userIPs
·ftp_userAccess
·ftp_groups
·ftp_groupIPs
·ftp_groupAccess
其中ftp_users为存放用户的表,最为重要。

3、建立ODBC。示例过程如下
(1)添加系统DSN(系统数据源),选择SQL Server,填好数据源名称和服务器(本机使用local)

(2)登录验证方式根据你的mssql设置决定,这里用SQL验证的方式登录

(3)更改数据库为你创建好Serv-U表的数据库,确认,完成ODBC设置。现在你有了一个名为Serv-U的系统数据源,记得这个名字和登录使用用户和密码。

4、配置Serv-U
(1)关闭Serv-U,从MS SQL Server ODBC Example示例包中获得Add-to-Ini.txt文件,打开此文件,完整复制以下代码:
[Domain1]
ODBCTables=ftp_users|ftp_groups|ftp_userAccess|ftp_groupAccess|ftp_userIPs|ftp_groupIPs
ODBCColumns=ftpUserName|ftpPassword|sKey|dirHome|loginMsgFile|accessRule|disabled|sessionEncryption|dirHomeLock|hideHidden|alwaysAllowLogin|changePassword|quotaEnable|maxUsersLoginPerIP|speedLimitUp|speedLimitDown|maxUsersConcurrent|timeOutIdle|timeOutSession|ratioUp|ratioDown|ratioCredit|quotaCurrent|quotaMax|expiration|privilege|ftpPasswordType|ratioType|groups|notes|indexNo

(2)打开Serv-U的安装目录,找到ServUDaemon.ini文件,将对应[Domain1]及其后面的对应设置用上面的代码替换。

(3)重新打开你的Serv-U,找到刚才你新建的域,在ODBC设置中应该已经能够看到ODBC链接设置中,除了ODBC源名称、帐号和密码部分空的外,其他的表名和列名都已经设置好了。


(4)填写好你的ODBC源名称、帐号和密码,应用设置,如果你的设置没有问题的话,域前面的图标将不再是禁止的样子,表示已经设置好了

(5)随便建立一个用户,然后对应在你的ftp_users表中查找看是否存在,如果没有问题,你已经完成了Serv-U的ODBC设置。

二、编程实现ODBC管理Serv-U用户
有了数据库,用编程实现管理Serv-U用户应该是一件非常简单而轻松的事情,唯一的难点在于密码的加密。
我们知道Serv-U三种加密算法,默认情况下是32位的md5加密算法,这和有的16位和64位加密算法有所不同,因此我们在编程中要使用32位的

MD5加密算法来实现密码的加密。以下以ASP编程为例:

用以下两个函数完成对密码的加密,32位MD5加密文件在此下载MD5.ASP

Function SerUPassEnCode(strPass) 
Dim Char1,Char2,Seed,prePass,EncodePass,FinalPass 
If IsNull(strPass) Or strPass="" Then Exit Function 
Char1 = Chr(Rand(97,122)) 
Char2 = Chr(Rand(97,122)) 
Seed = Char1 & Char2 
prePass = Seed & strPass 
EnCodePass = Ucase(md5(prePass)) '32位md5 
FinalPass = Seed & EnCodePass 
SerUPassEnCode = FinalPass 
End Function
Function Rand(n,m)
Dim a,b,t
a = n : b = m
If b < a Then t = b : b = a : a = t
Randomize
Rand = Int(rnd*(b-a+1)+a)
End Function
本文完全原创,请尊重作者劳动,转载请注明出处,谢谢。

(0)

相关推荐

  • java操作ftp下载文件示例

    复制代码 代码如下: /**     *      * JAVA操作 FTP 下载     * 文件下载.     *     */    private void ftpDownload()    {        FTPClient ftpClient = null;        InputStream input = null;        boolean loginFlag = false;        List<String> list = new ArrayList<S

  • Linux下使用Shell脚本实现ftp的自动上传下载的代码小结

    1. ftp自动登录批量下载文件. 复制代码 代码如下: #####从ftp服务器上的/home/data 到 本地的/home/databackup#####!/bin/bashftp -n<<!open 192.168.1.171user guest 123456binarycd /home/datalcd /home/databackuppromptmget *closebye! 2. ftp自动登录上传文件. 复制代码 代码如下: ####本地的/home/databackup to

  • JAVA中使用FTPClient实现文件上传下载实例代码

    在java程序开发中,ftp用的比较多,经常打交道,比如说向FTP服务器上传文件.下载文件,本文给大家介绍如何利用jakarta commons中的FTPClient(在commons-net包中)实现上传下载文件. 一.上传文件 原理就不介绍了,大家直接看代码吧 /** * Description: 向FTP服务器上传文件 * @Version1.0 Jul 27, 2008 4:31:09 PM by 崔红保(cuihongbao@d-heaven.com)创建 * @param url F

  • python实现支持目录FTP上传下载文件的方法

    本文实例讲述了python实现支持目录FTP上传下载文件的方法.分享给大家供大家参考.具体如下: 该程序支持ftp上传下载文件和目录.适用于windows和linux平台. #!/usr/bin/env python # -*- coding: utf-8 -*- import ftplib import os import sys class FTPSync(object): conn = ftplib.FTP() def __init__(self,host,port=21): self.c

  • JAVA技术实现上传下载文件到FTP服务器(完整)

    具体详细介绍请看下文: 在使用文件进行交互数据的应用来说,使用FTP服务器是一个很好的选择.本文使用Apache Jakarta Commons Net(commons-net-3.3.jar) 基于FileZilla Server服务器实现FTP服务器上文件的上传/下载/删除等操作. 关于FileZilla Server服务器的详细搭建配置过程,详情请见 FileZilla Server安装配置教程 .之前有朋友说,上传大文件(几百M以上的文件)到FTP服务器时会重现无法重命名的问题,但本人亲

  • 关于c#连接ftp进行上传下载实现原理及代码

    复制代码 代码如下: using System; using System.Collections.Generic; using System.Text; using System.Net; using System.IO; namespace ftponload { class Program { static void Main(string[] args) { //上传文件的方法 onload("D://outPut.txt"); //下载文件的方法 fload(); } pub

  • Java语言实现简单FTP软件 FTP软件效果图预览之下载功能(2)

    介绍完FTP协议后,来看看该软件完成后的效果图 客户端的主界面如上图所示,主要是分为以下几个界面: 数据输入界面:用来让用户输入服务器的地址,用户名,密码,端口号等. 站点菜单.本地菜单.远程菜单以及帮助菜单. 本地文件信息显示界面:主要是用来显示本地文件列表以及文件详情,以及对文件进行相关操作. 远程文件信息显示界面:主要是用来显示远程FTP服务器端文件列表以及文件详情,以及对文件进行相关操作. 上传下载队列显示界面:显示正在下载或者上传的文件线程的进度. 下载测试 1.下载前选好要下载到的目

  • php下连接ftp实现文件的上传、下载、删除文件实例代码

    php ftp传送文件到服务器 复制代码 代码如下: <?php // 开始 $ret = ftp_nb_get ($my_connection, "test", "README", FTP_BINARY, filesize("test")); // 或: $ret = ftp_nb_get ($my_connection, "test", "README", // FTP_BINARY, FTP_A

  • 使用FTP下载目录,即FTP命令批量自动下载的bat文件

    FTP不支持目录的下载,不过FTP命令提供了mget命令,允许多文件下载,但每下载一个文件都需要确认,不能自动完成.本文主要介绍使用批处理,结合FTP的相关命令来实现批量文件的下载,以便达到目录下载的目的. 大致想法如下: ftp -s:filename hosts >result.txt 执行脚本,并将结果定向输出到result.txt脚本内容,如cd mydirlsbye可以将mydir命令列出然后使用批处理分析result.txt从150 Opening ASCII mode data c

  • 批处理bat下载FTP服务器上某个目录下的文件

    本代码以下载FTP服务器上某个目录下的所有文件为例. 如果需要下载某个目录下的.txt类型的所有文件,请把 mget *.* 改成 mget *.txt 如果需要下载某个目录下的某一个文件a.txt,请把 mget *.* 改成 get a.txt @echo off rem 指定FTP用户名 set ftpUser=FTPUSERNAME rem 指定FTP密码 set ftpPass=FTPPASSWORD rem 指定FTP服务器地址 set ftpIP=192.168.0.2 rem 指

随机推荐