AC/AP设备改造需要达到以下要求。
1)提供获取AP及终端手机MAC地址的Web API。
某款Portal路由器获取路由器及当前连接手机MAC地址的API接口如下。
http:// fangbei.lan:8080/ubus
请求MAC地址时,提交POST数据示例如下。
{ "id":1234, "jsonrpc":"2.0", "method":"call", "params":[ "00000000000000000000000000000000", "mgmtd", "info", {} ]}
上述数据提交后,返回数据示例如下。
{ "jsonrpc":"2.0", "id":1234, "result":[ 0, { "hwid":"08410008", "swver":"r0.7.6-fangbei", "client_ip":"192.168.3.206", "macaddr":"00e0614ca7c5", "client_mac":"0021ccb8bfd4" } ]}
其中,macaddr和client_mac分别为当前路由器和手机终端的MAC地址。
2)将IOS的嗅探地址放入白名单。
为了防止IOS切换SSID时自动弹出Portal页,需要将IOS的嗅探地址“http://captive.apple.com/hotspot-detect.html”放入路由器放行地址白名单。
3)支持临时放行上网请求。
AP/AC在Portal页打开后需要临时放行用户的上网请求。只有临时放行成功,才可以通过JS API调起微信,换取用户身份信息,保证后续认证请求顺利完成,从而成功联网。
IOS调起微信时,如果网络不通,WiFi会被切走,会导致联网失败,因此需要AC/AP支持临时放行上网请求。