WHMCS模块——Freeradius MySQL(可实时查看流量使用情况)

上周完成了个Freeradius Server & Freeradius Client with Poptop Server and L2TP Over IPSec的安装程序,考虑到可能有需要与WHMCS对接的,因此特意弄了个WHMCS的模块。

下载地址:http://soft.yzs.me/freeradius.tar.bz2

使用方法:

解压下载的文件,把freeradius目录上传至WHMCS的modules/servers/目录中。

登录Freeradius Server的MySQL Server,添加允许远程连接MySQL的用户,且对Freeradius Server的数据库拥有所有权限。另外,my.cnf中如果有bind 127.0.0.1,需要注释掉。

登录WHMCS管理员区域,添加服务器,用户名是MySQL的用户名,密码是该MySQL用户的密码。

添加产品,到“Module Settings”标签页设置参数:

“Freeradius Database Name”为Freeradius Server使用的数据库名;“Password Type”为MySQL中密码的保存方式,可选MD5加密或明文保存(用MD5方式保存,虽然radtest是回应Accept,但PPTP仍然提示密码错误,所以用PPTP的还是用明文保存吧);“User Group Name”为新建的用户加入的组名称,留空则不加入任何组。

“Radcheck”为添加用户时往radcheck表中额外加入的记录,不需要输入id和用户名,不同字段以“|”隔开,不同记录以“,”隔开。例如“Hourly-Traffic|:=|1024”,Hourly-Traffic属于attribute,:=属于op,1024属于value,id与用户名会自动填写。

“Radreply”为添加用户时往radreply表中额外加入的记录。id与用户名自动填写,不同字段以“|”隔开,不同记录以“,”隔开。例如“Framed-IP-Netmask|:=|255.255.255.0”,Framed-IP-Netmask属于attribute,:=属于op,255.255.255.0属于value。

例如图中的设置:

settings

则添加用户后radcheck表该用户的记录为:radcheck

radreply表该用户的记录为:

radreply

 

 

切换到“Custom Fields”标签页,添加一个名为“Traffic Usage”的Custom Fields,“Field Type”为“Text Area”,并勾选“Admin Only”:Custom Fields

 

如果设置无误,即可正常使用:

Freeradius MySQL

 

NOTE:有任何的问题或建议,欢迎提出。

DirectAdmin额外流量模块For WHMCS

如果没猜错,WHMCS自带的DirectAdmin模块是不带添加额外流量的功能的。

看了下DirectAdmin的API文档,利用CMD_API_MODIFY_USER即可实现添加额外流量的功能。

一开始打算用CURL的,不过DirectAdmin提供了一个httpsocket.php,创建数组调用里面的函数就行了。

下载地址:http://soft.yzs.me/additionalbandwidth.zip

使用方法:

1)  上传到WHMCS的modules/servers目录,然后解压。

2) 到后台添加服务器,选择Type为Additionalbandwidth,并填写好信息。

3) 添加并配置产品,在“Custom Fields”标签页添加一个编辑框,勾选“Required Field”和“Show on Order Form”,建议使用正则表达式限制纯英文字母:Custom Fields

不会写正则表达式就用这个:

完成上面一步后,到“Module Settings”标签页,设置好要添加的流量,以及刚刚添加的“Custom Fields”的“Fields Name”

Module Settings

 

4) 测试,下单时在那个编辑框中填入控制面板的用户名

NOTE:Suspend以及Unsuspend功能并没有实际效果,只是把WHMCS处的服务标记为暂停与激活状态。Create是添加额外流量,Terminate是把额外流量设置为0。

由于此API的操作不返回任何信息(不管错误亦或是正确),因此不管是否成功添加流量,WHMCS处都会提示“Module Command Success”。