mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-04-16 04:13:31 +00:00
64 lines
1.9 KiB
Lua
64 lines
1.9 KiB
Lua
-- Copyright (C) 2016 zhangzf@kunteng.org
|
|
-- Licensed to the public under the GNU General Public License v3.
|
|
|
|
module("luci.controller.apfree_wifidog", package.seeall)
|
|
|
|
function index()
|
|
entry({"admin", "services", "apfreeWifiDog"}, cbi("apfree_wifidog"), _("WifiDog"), 40).index = true
|
|
entry({"admin", "services", "apfreeWifiDog", "getClientList"}, call("getClientList"))
|
|
end
|
|
|
|
function getClientList()
|
|
local RespDate = {}
|
|
local RespCode = 0
|
|
local HostName, IPAddr, MacAddr, Download, Upload, LoginTime
|
|
|
|
local WdctlCMD = "wdctl status | grep -e '^ ' | sed -r 's/^ +//' 2>/dev/null"
|
|
|
|
local UpTime = luci.util.exec("wdctl status | grep Uptime | cut -d ' ' -f 2-6")
|
|
if UpTime == "" then
|
|
RespCode = 1
|
|
else
|
|
local function initDate()
|
|
HostName = "unknow"
|
|
IPAddr = ""
|
|
MacAddr = ""
|
|
Download = 0
|
|
Upload = 0
|
|
LoginTime = "0"
|
|
end
|
|
|
|
local ClientList = {}
|
|
for _, Line in pairs(luci.util.execl(WdctlCMD)) do
|
|
if Line:match('^(IP:)') == "IP:" then
|
|
IPAddr, MacAddr = Line:match('^IP: (%S+) MAC: (%S+)')
|
|
elseif Line:match('^(First Login:)') == "First Login:" then
|
|
LoginTime = Line:match('^First Login: (%d+)')
|
|
elseif Line:match('^(Name:)') == "Name:" then
|
|
HostName = Line:match('^Name: (%S+)')
|
|
elseif Line:match('^(Downloaded:)') == "Downloaded:" then
|
|
Download = Line:match('^Downloaded: (%d+)')
|
|
elseif Line:match('^(Uploaded:)') == "Uploaded:" then
|
|
Upload = Line:match('^Uploaded: (%d+)')
|
|
|
|
table.insert(ClientList, {
|
|
['hostname'] = HostName,
|
|
['ipaddr'] = IPAddr,
|
|
['macaddr'] = MacAddr,
|
|
['download'] = Download,
|
|
['upload'] = Upload,
|
|
['logintime'] = os.difftime(os.time(), tonumber(LoginTime) or 0),
|
|
})
|
|
|
|
initDate()
|
|
end
|
|
end
|
|
|
|
RespDate["clients"] = ClientList
|
|
RespDate["uptime"] = UpTime
|
|
end
|
|
|
|
RespDate["code"] = RespCode
|
|
luci.http.prepare_content("application/json")
|
|
luci.http.write_json(RespDate)
|
|
end |