22
附带参数的名称可以用 replace_http_ctrl_args 函数替换。
args:插件指定的跳转时附加的参数。
strlen(args)=0 则不带参数。对于 web 认证重定向,系统会自动附加参数 rid=xx,xx 为插件调用 register_http_ctrl 的返回值。
islocal:跳转的目标地址的位置。
位于本360 智能路由器时为 1,同时,redir_url 使用相对路径,不需要 host,只需要 URL,系统会自动加上设备的 IP和端口号
Internet 网址时为 0,redir_url 使用绝对路径
当 data 为 NULL时 , 设 置 interval=0, times=0, local_url=0,
prio=0,flags=0,strlen(args)=0.
addr[in]:用于对指定用户进行重定向的 API,它是用户的 IP 地址。
返回值: > 0 时代表注册成功,其则是规则 ID。当 id<=0 时,表示注册失败。
次 重定向一次 API :通常用于通知功能,只能对特定 IP 主机进行操作,重定向一次后规则自动失效。
认证随机数:用于在 web 认证时防止虚假服务器和重放攻击。当 360 智能路由器进行跳转时,自动生成 16 字节随机数。认证服务器可根据该数字来生成认证签名,再发回到插件,插件验证签名合法后,设置用户为已认证状态。
举例:
1、对无线副 AP 用户注册 WEB 认证,跳转到路由器本地的 webauth.htm,
并 使 用 系 统 参 数 IP 、 MAC 、 SSID, 并 使 用 自 定 义 参数
city=&chengdu&id=028
struct redirect_url rd={ 0,};
user_group_mask_t gmask={ 0,};
NOS_STRUCT_INIT(&rd);
rd.islocal = 1;
igd_set_bit(URL_ARGS_PCMAC,rd.flags);
igd_set_bit(URL_ARGS_PCIP, rd.flags);
igd_set_bit(URL_ARGS_SSID, rd.flags);
strcpy(rd.args, “&city=chengdu&id=028”);
igd_set_bit(UGRP_WIFI_2, gmask);
register_http_ctrl(gmask, HTTP_CTRL_TYPE_WEBAUTH, NULL,
“webauth.htm”, &rd);
/* 用 户 在 开 启 网 页 时 会 跳 转 到
192.168.1.1/webauth.htm?pcip=192.168.1.3&pcmac=80:00:00:00:01:00&ss
id=360WIFI&city=chengdu&id=028*/
2、 同例子 1,跳转到远程页面 www.mywebauth.cn/login.htm。