用API修改应用过滤配置
来自WFilter上网行为管理系统文档和指南
下面是用php调用WFilter NGF API的例子。
1 读取配置config_load
$result = $ngf->config_load("wfilter-appcontrol");
echo "config:$result";
返回格式:
config:{
"jsonrpc":"2.0",
"id":2,
"result":
[ 0,
{ "values": //配置文件内容
{ "rule1695810460278": //rule ID
{
".anonymous":false,
".type":"rule",
".name":"rule1695810460278",
".index":0,
"name":"test1", //规则名称
"toall":"false", //是否对所有终端生效
"enable_ab":"true",
"utype":"device", //应用对象类型:device--终端,user-用户,range自定义
"user":["group1546995000471"], //应用对象
"time":"time1", //生效时间段
"autoblock":"0,0,0", //自动禁止规则
"blockup2":"false", //智能过滤
"blockall":"false", //禁止所有
"unknown":"false", //禁止未知
"block":["PPLive","QQLive","PPStream"], //禁止的应用列表
"id":"rule1695810460278", //规则id
"enabled":"true" //是否启用
}
},
... //多条规则
}
]
}
2 添加规则config_add
//规则内容要填写在一行内不能换行,双引号要转义
$values = "{ \"name\":\"test2\",\"toall\":\"false\",\"enable_ab\":\"true\",\"utype\":\"device\",\"user\":[\"group1546995000471\"],\"time\":\"time1\",\"autoblock\":\"0,0,0\",\"blockup2\":\"false\",\"blockall\":\"false\",\"unknown\":\"false\",\"block\":[\"Youtube\"],\"id\":\"rule12345\",\"enabled\":\"true\"}";
//规则中的id要和config_add的第三个参数一致
$result = $ngf->config_add( "wfilter-appcontrol", "rule", "rule12345", $values );
echo "config_add:$result";
调用成功后,服务端返回格式:
config_add:{"jsonrpc":"2.0","id":2,"result":[0,{"section":"rule12345"}]}
3 修改规则config_set
$values = "{\"enabled\":\"false\"}"; //把规则状态改成不启用
$result = $ngf->config_set( "wfilter-appcontrol", "rule12345", $values );
echo "config_set:$result";
调用成功后,服务端返回格式:
config_set:{"jsonrpc":"2.0","id":2,"result":[0]}
4 删除规则config_del
$result = $ngf->config_del( "wfilter-appcontrol", "rule12345" ); echo "config_del:$result";
调用成功后,服务端返回格式:
config_del:{"jsonrpc":"2.0","id":2,"result":[0]}
5 应用新配置
$result = $ngf->config_apply(); echo "config_apply:$result";