通常,FreeRadius 系统包含一个实时跟踪数据的 radacct 表。每小时或每天或每次用户注销当前使用情况都会与使用的数据量和日期一起添加到 radacct 表中。
这使得提供后付费数据变得容易。事实上,您必须这样做,因为您可以查询的只是客户历史上使用过的数据。但是如果你想做预付费,我已经考虑了很多年,虽然我想出了一些类似于银行的东西,但我仍然不确定如何实现预付费数据。一旦警告是预付费数据可能在几个月内有效,并且由于 radacct 在当前日期有效,我不知道如何实现这一点。
我正在寻找一种简单的方法来启用现有的 Radius 系统以允许预付费数据,而无需使用任何或太多的存储过程。我正在使用 MySQL 和 PHP。
编辑:一年零三个月后,我重新访问了这篇文章。我们最终使用了 DMA Softlab 的产品 Radius Manager,它内置了这个功能。我们自己这样做需要太多的存储过程和太多的开发时间。只是按照@maraspin 的要求解释我们的架构是一项使命。