• 6370 阅读
  • 15 回复

G6 FTP Server 用户连接数和多IP连接限制脚本

视频在线上传+队列转换FLV+水印+捉图+修复+获时+转3GP(API语言不限,开视频站必备!)
近期G6 FTP Server比较火,偶也在玩,发现,如果要对数据库中的用户实现连接限制的话,例如,限制同一用户不能2个IP同时登陆,或者,1个用户只能2连接等,纯粹依靠G6自己来实现,基本不可能,本文给你实现方法……


近期G6 FTP Server比较火,偶也在玩,发现,当G6的用户帐号数据库存储,实现起来很方便,或者说,类似论坛的针对G6的FTP插件,实现起来很方便。但是,如果要对数据库中的用户实现连接限制的话,例如,限制同一用户不能2个IP同时登陆,或者,1个用户只能 2连接等,纯粹依靠G6自己来实现,基本不可能。这两天研究了下。找到了了实现方法。  G6的利用数据库存储用户帐号来验证的实现,就不多说了,Manual里面说得很清楚,很详细了。
  下面的脚本,是实现的数据库中的帐号,限定帐号的并发连接数。G6脚本支持VBScript和Jscript,呵呵,偶当ASP写
  (在G6 3.2.0 Build 72 上验证通过.)
  基本原理:在用户登录的时候,遍历一次本Domain下online用户的用户名,统计online的用户名的数量,发现达到允许的最大连接数,就发送553,如果还赖着不走,就直接kick
  安装方法:
  在实现了用户验证资料数据库存储之后, 修改MaxConnPerUser的为你需要的值,然后将此段Script放置在G6的Script目录下,选定数据库用户验证的那个公用帐户,在帐户资料的Script选项中,选取此脚本即可。
  如果要实现限制用户不能同时从多个IP登陆的话,在上面的代码验证Client.username之后,再加个Client.IP的验证即可,偶懒,不写了:P
  其中的G6FTPServer.Manager等,是G6自己提供的COM Object,可以在脚本中调用。
  再,Manual中关于脚本部分,讲得并不详细,在G6官方的下载的FTP目录里有一份Developer's guide,COM Object等东西,都在那里面才有详细点的介绍。
  写这段Scritp的过程中,参考了G6 Forum中CodeScript的部分代码和思路,呵呵,也许只能算半原创了 也幸亏看了他的代码,否则都没想起来去G6的官方翻开发手册。页面上都没有任何连接的....
  附件是直接可用的代码,给C&P都懒得作的懒人的。

53554h77o8lh.rar (您是游客您没有权限下载)


来源:http://smallbizit.ctocio.com.cn/tips/98/6191098.shtml
本帖最后由 张小鱼 于 2010-02-26 10:57 编辑
小鱼的淘宝店铺-多多支持哇

Gene 6 FTP Server 使用 ODBC 連 Mysql

视频在线上传+队列转换FLV+水印+捉图+修复+获时+转3GP(API语言不限,开视频站必备!)
如題 ! 這是這兩天碰上的難題 ~ 以前也沒設定過 !

不過 ~ 很明顯的 ~ 這又是 Google 大神教我的 ~

所以 ~ 別再問我是怎樣學的了 ~

可以從電腦白癡走到現在這樣 ( 雖然沒強到那去 )

原文意思應該是

Storing server, domains, users and groups in a Database via ODBC


簡單講 ~

就是利用 ODBC ( 資料來源 ) 來控管 Gene 6 FTP Server 內的資料
1 . 首先 !! 您一定要有 Gene 6 這個 FTP Server 軟體囉 !!
Google 上很多就可以讓你輕鬆拿到 !


2 . 安裝過程那些就不詳述了 ~ 畢竟都要 架 FTP 了 ~ 總不能還不會安裝吧 ?


3 . 安裝完畢後 ~ 運行時可以看到如下這樣的畫面
您是游客您没有权限查看该图片


4 . 接著您還需要 1 個 ODBC 設定的檔案
150480.zip (您是游客您没有权限下载)



( 裡面分別有 mssql mysql oracle 分別是要透過 Mysql 或 MSSQL 或 ORACLE 來連線用的 ! 這邊是採用 account.ini.mysql )
然後把 account.ini.mysql 改成 account.ini 放在  Gene 6 的根目錄底下 !
5 . 請將檔案解壓縮 ~ 然後把他用 phpMyAdmin 或 Mysql 直接匯入資料庫中 ( 這邊要匯的是這筆 odbc-SQL-tables-mysql )


6 . 接著是要告訴 Gene 6 要使用 ODBC 來連線 Mysql !

;-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->

[Settings]
Storage=ODBC

[ODBC]
;ConnectionString=Provider=MSDASQL.1;Persist Security Info=False;Data Source=mysql-odbc
ConnectionString=DSN=mysql-odbc
UserID=
Password=
; Set to 0 if your sql server doesn't support foreign keys (e.g. mysql), set
; to -1 otherwise
ForeignKeys=0
; This setting tells the server how to quote values in SQL queries
; 0 = backslashes characters that need to be quoted in queries (e.g. 'O'reilly')
; 1 = double quotes in queries (e.g. 'O''reilly')
EscapeType=0

;-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->

For MS SQL (provided by ADutch1) :

;-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->

[Settings]
Storage=ODBC

[ODBC]
ConnectionString=DSN={whatever you named the SystemDSN in the ODBC control panel}
UserID={user account to connect to the DB in SQL}
Password={password if the user account above}
; Set to 0 if your sql server doesn't support foreign keys (e.g. mysql), set
; to -1 otherwise
ForeignKeys=-1
; This setting tells the server how to quote values in SQL queries
; 0 = backslashes characters that need to be quoted in queries (e.g. 'O'reilly')
; 1 = double quotes in queries (e.g. 'O''reilly')
EscapeType=1

;-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->

For Oracle (provided by Oaxa) :

;-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->

[Settings]
Storage=ODBC

[ODBC]
;ConnectionString=Provider=MSDASQL.1;Persist Security Info=False;Data Source=mysql-odbc
ConnectionString=DSN=ORADC_G6
UserID={user account to connect to the DB in SQL}
Password={password if the user account above}

; Set to 0 if your sql server doesn't support foreign keys (e.g. mysql), set
; to -1 otherwise
ForeignKeys=-1
; This setting tells the server how to quote values in SQL queries
; 0 = backslashes characters that need to be quoted in queries (e.g. 'O'reilly')
; 1 = double quotes in queries (e.g. 'O''reilly')
EscapeType=1

;-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->

這邊的內容在上面的壓縮檔裡皆已附上 ! . . 可以直接將其檔名 account.ini.mysql 改成 account.ini

7. 還有就是千萬別忘了裝 Mysql ODBC 的驅動:
522017.msi (您是游客您没有权限下载)


8 . 到系統的 控制臺裡的系統管理工具找到 ODBC 資料來源看到如下圖
您是游客您没有权限查看该图片


如果你沒安裝第七步的軟體是看不到下面這張圖的 !
您是游客您没有权限查看该图片


9 . 下面這張圖應該不需要多解釋了 ~ 不會設 ? 也不用架 FTP 了 !!!
您是游客您没有权限查看该图片


搞定 ~ 完工 !!! 可以試著在 G6 新增網域了 !!!可能碰上的問題有 : 不能新增
1 . Mysql 沒設好權限
2 .  DB 沒設好權限
好像是廢話 ! 囧rz
来源:http://dark-circles.us/index.php?load=read&id=349


可能碰上的問題有 : 不能新增
1 . Mysql 沒設好權限
2 .  DB 沒設好權限
好像是廢話 ! 囧rz
来源:http://dark-circles.us/index.php?load=read&id=349
小鱼的淘宝店铺-多多支持哇
视频在线上传+队列转换FLV+水印+捉图+修复+获时+转3GP(API语言不限,开视频站必备!)
上一篇中 !

已經提到說如何使用 ODBC 來控制 G6 !

接著要說明 ! 如何再跟 PHPWind 來配合 !

以便使用 論壇 + Mysql + G6 三種工具來控管 FTP


關閉...

1 . 如果欲把 Mysql 裝在 $MS 底下可以試著用這個 ( Appserv ) !!

可以把 Apache 和 Mysql 和 phpMyadmin 一次裝好


2 . 接著自行利用 Mysql 或 phpMyAdmin 把下列兩筆資料給會入到資料庫中


odbc-SQL-tables-mysql.sql



tuser.sql


3 . 接著到 論壇的後臺去安裝 FTP 購買的外掛 !!! ( 這邊不多加解釋 )

您是游客您没有权限查看该图片


把如上圖該設定的自己瞭解一下 ! 設定好 !

来源:http://dark-circles.us/index.php?load=read&id=376
小鱼的淘宝店铺-多多支持哇

BBSFTP 流量插件安裝

视频在线上传+队列转换FLV+水印+捉图+修复+获时+转3GP(API语言不限,开视频站必备!)
這是一個新的嘗試 !
很久之前試過 Gene6 FTP + MySQL + PHPWind 的配置 !
但是對於 PHPWind 實在是太少接觸了 ! 於是決定改成這樣的方式
首先 請到 BBSFTP 的網頁 去下載插件

總共需要下載下面幾個
BBSFTP G6FTP插件部分下載
Discuz 6.0 論壇插件:
bbsftp_dz6.rar (您是游客您没有权限下载)

這篇要解說的是 G6 的操作說明 ! 也就是 FTP 本機端的安裝設定

( 論壇端請期待下一篇吧 ! )
===================正式開始=====================
當您下載了  BBSFTP G6FTP插件部分下載 之後 ! 解壓縮可以看到如附圖所示的檔案
您是游客您没有权限查看该图片


首先請將該資料夾裡的 bbsftp 完整複製到您的 Gene6 FTP 的根目錄底下
您是游客您没有权限查看该图片



接著請將 " g6-bbsftp.dll 複製到 Gene6 FTP 裡的 Plugin 資料夾裡
您是游客您没有权限查看该图片


再來請至 剛剛複製好的 bbsftp 資料夾 中準備執行 " bbsftpconfig.exe "
您是游客您没有权限查看该图片



這邊由於該軟體是簡體中文 ! 因此您需要另外去下載 " apploc.msi "
您是游客您没有权限查看该图片


下載之後請執行該安裝檔 ~ 其過程不再詳述 ! 請自行參考下列幾張圖
您是游客您没有权限查看该图片

您是游客您没有权限查看该图片


安裝完之後請執行它 !
您是游客您没有权限查看该图片


更加详细请见:http://dark-circles.us/index.php?load=read&id=659
小鱼的淘宝店铺-多多支持哇

用 FTP 下指令讓 主機 重開機

视频在线上传+队列转换FLV+水印+捉图+修复+获时+转3GP(API语言不限,开视频站必备!)
由於一些工作關係
我還蠻常需要遠端很多臺主機
有時就是會莫名的連不上遠端主機
但是明明主機還活著 !
難道每次都得跑到本機端去嗎 ?
這是就得需要透過這個方便的 script 了

首先 ! 必需在遠端主機上有安裝 Gene 6 FTP Server 這軟體
您是游客您没有权限查看该图片



並且建立一個 bat 檔
您是游客您没有权限查看该图片


裡面就只寫一行語法便可
您是游客您没有权限查看该图片



接著便是要幫 Gene 6 裡的 script 做設定
請將 SiteCommand 打勾
您是游客您没有权限查看该图片


再來請依上圖做相關的設定
您是游客您没有权限查看该图片



做後就請你在連線上 FTP 時下這樣的指令吧
site REBOOT
就可將主機透過 FTP Client 來重新開機囉 !
来源:http://dark-circles.us/index.php?load=read&id=798

经小鱼测试--------可行。呵蛮好
您是游客您没有权限查看该图片

您是游客您没有权限查看该图片

您是游客您没有权限查看该图片

您是游客您没有权限查看该图片

您是游客您没有权限查看该图片

您是游客您没有权限查看该图片

您是游客您没有权限查看该图片

您是游客您没有权限查看该图片

本帖最后由 张小鱼 于 2010-03-24 10:05 编辑
小鱼的淘宝店铺-多多支持哇

Gene6 FTP Server的虚拟文件系统设置

视频在线上传+队列转换FLV+水印+捉图+修复+获时+转3GP(API语言不限,开视频站必备!)
因为Serv-U FTP这个使用非常广泛的FTP服务器软件频频爆出严重漏洞,不少人转向了Gene6 FTP Server。
在3.0推出的时候就试过这个软件,易用性还不错,某些功能比Serv-U要强,但因为一些bug还是卸载了事。
今天白天和Everest在QQ上聊的时候,他说Gene6有个高级应用上的bug,正好最近比较空,就装上3.1.0版研究一下。
根据软件自带的PDF格式用户手册,加上实践,bug还没试出来的时候,却发现了它的Virtual File System(虚拟文件系统)比Serv-U的Virtual Path(虚拟路径)强得多的地方。

Gene6的Virtual File System支持五种资源:
Local file system
Merge file system
Memory file system
Remote resource via FTP
Empty

(1)Local file system
这是最简单的一种,和Serv-U的Virtual Path类似,比如这样设置:
Virtual path:/应用软件
Physical path:g:\应用软件

这种用法也支持UNC路径(\\computer\),可以将局域网中其他电脑上的资源发布到FTP上,当然和Serv-U一样,你需要给Gene6 FTP Server服务设置能访问其他机器资源的登录帐号及密码。

如果想要实现各用户访问自己的专属文件夹可以这样写:
Virtual path:/Upload
Physical path:c:\ftp\upload\$USR_ACCOUNT\
$USR_ACCOUNT对应各用户名,当然你不能忘了事先给各用户建立其专属文件夹。

(2)Merge file system
把多个文件夹的内容显示在一个虚拟路径里,比如这样设置:
Virtual path:/应用软件
Physical path:merge://"g:\应用软件","e:\Downloads\"

关于这种用法,有几点说明:
. you can merge as many folders as you want.
. if the path contains comma, quote it : "c:\ftproot\files, datas\"
. duplicates files or sub folders will only be listed once.
. sub directories duplicates will also be merged.
. access rights applies to all the merged directories.
. uploading/dir creation will always be made in the first folder from the merge list.
. when deleting, the server will browse each folder until it finds the files; if there are duplicates, the file will only be deleted once which means it can still appears in the list (in this case it will listed from another folder).
大致翻译一下(不擅长这个,按我的理解尽量了):
. 你可以合并你想要合并的多个文件夹
. 如果路径中包括逗号,在路径前后加上引号
. 名字重复的文件或子文件夹将只显示一次
. 子目录复本也将被合并
. 你所设置的访问权限(读、写、删除、追加)将被应用于所有被合并的目录
. 建立新目录或连目录上传将被应用于合并列表的第一个文件夹(如上例则为:g:\应用软件)
. 删除文件时服务器将遍历每个文件夹直到找到它们,如果存在名字重复的文件,将只删除一次,而你在成功删除后将发现文件还在(而它其实是另一个文件夹里的文件)

(3)Memory file system
这个用法比较有趣,而且写法很简单,比如:
Virtual path:/应用软件
Physical path:ramdisk://
手册里只是一笔带过,我实际试了一下,正如其名,上传的文件是保存在内存里的,感觉实际没多大用处,呵呵

(4)Remote resource via FTP
Everest和我说的高级应用上的bug就出在这里,这个设置是比较有用的,按Everest的说法,可以实现FTP集群,比如这样设置:
Virtual path:/应用软件
Physical path:ftp://test:test@192.168.0.5:21/应用软件/
顺便提一下Everest所说的bug,我在3.1.0中测试了一下还存在,就以上面这行为例,当“应用软件”对应的物理文件夹是中文名的时候,用这种方法进到另一个FTP,“应用软件”下的子目录全都无法进入,报错no such file or directory,而如果对应的物理文件夹是英文名,就不会出现这种情况。

(5)Empty
建立一个空的虚拟目录,这个虚拟目录下无法上传任何内容(即使你将访问权限设为All),适合用来做不允许直接上传文件的根文件夹,比如:
Virtual path:/
Physical path:empty://

最后说一下访问权限,相对于上述内容这个就简单多了

File level :
. Download : 用户可以读取服务器上的文件(有下载权限)
. Upload : 用户可以在服务器上写文件(有上传权限)
. Delete : 用户可以删除服务器上的文件
. Append : 用户可以续传文件
Folder level :
. List files : 用户能看到文件列表
. List folders : 用户能看到目录列表
. Make : 用户能在服务器上新建文件夹
. Remove : 用户能删除服务器上的文件夹
. Subdirs : 用户能进入当前文件夹的子文件夹(权限是继承的)
. Hide : 用户不能在列表里看到文件夹
. Secure : 此文件夹仅支持SSL安全连接
. Deny : 用户被禁止访问此目录
. All : 允许所有文件及文件夹的访问权限,在允许的情况下再次点击将设置为Deny

在设置虚拟文件系统的时候,不需要特意去记各种资源调用的写法,如图所示,只需点击下拉框...

来源:https://bbs.et8.net/bbs/showthread.php?t=583429
小鱼的淘宝店铺-多多支持哇