1

我正在使用 Freeradius 的 SQL 模块来检查用户是否已达到其每周数据限制,因为我正在使用此查询:

SELECT (IFNULL(SUM(AcctInputOctets), 0) + IFNULL(SUM(AcctOutputOctets), 0)) as used_data FROM (SELECT * FROM radacct b WHERE username = '%{%k}' AND DATE_FORMAT(acctstarttime, '%Y-%u') = DATE_FORMAT(CURDATE(), '%Y-%u') GROUP BY acctuniqueid) a

现在'%{%k}'被 Freeradius 替换为用户的用户名,但%u也被替换,这不应该发生,因为它应该由 SQL 处理以使用周数。

%Y不受自由半径的影响。

关于如何进行查询以使 Freeradius 不会逃避这一点的任何想法?

4

2 回答 2

1

正确的转义序列是%%u. 防止它被%%解释为单个字母扩展。

于 2015-04-11T20:39:06.497 回答
0

你应该像这样使用 %{User-Name}

于 2016-12-22T13:13:48.353 回答