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支持臨時放行上網請求。