mirror of
https://github.com/JamesonHuang/OpenWrt_Luci_Lua.git
synced 2024-11-23 22:00:11 +00:00
57 lines
1.8 KiB
Lua
57 lines
1.8 KiB
Lua
module ("xiaoqiang.util.XQUPnPUtil", package.seeall)
|
|
|
|
local XQFunction = require("xiaoqiang.common.XQFunction")
|
|
local XQConfigs = require("xiaoqiang.common.XQConfigs")
|
|
|
|
local LuciUtil = require("luci.util")
|
|
|
|
function getUPnPStatus()
|
|
if os.execute(XQConfigs.UPNP_STATUS) == 0 then
|
|
return true
|
|
else
|
|
return false
|
|
end
|
|
end
|
|
|
|
function switchUPnP(enable)
|
|
if enable then
|
|
return os.execute(XQConfigs.UPNP_ENABLE)
|
|
else
|
|
return os.execute(XQConfigs.UPNP_DISABLE)
|
|
end
|
|
end
|
|
|
|
function getUPnPList()
|
|
if getUPnPStatus() then
|
|
local upnpLease = LuciUtil.exec(XQConfigs.UPNP_LEASE_FILE)
|
|
if upnpLease then
|
|
upnpLease = LuciUtil.trim(upnpLease)
|
|
local upnpFile = io.open(upnpLease,"r")
|
|
if upnpFile then
|
|
local upnpList = {}
|
|
for line in upnpFile:lines() do
|
|
if not XQFunction.isStrNil(line) then
|
|
local item = {}
|
|
local info = LuciUtil.split(line,":")
|
|
if #info == 6 then
|
|
item["protocol"] = info[1]
|
|
item["rport"] = info[2]
|
|
item["ip"] = info[3]
|
|
item["cport"] = info[4]
|
|
item["time"] = info[5]
|
|
if info[6] == "(null)" then
|
|
item["name"] = "未知程序"
|
|
else
|
|
item["name"] = info[6]
|
|
end
|
|
table.insert(upnpList,item)
|
|
end
|
|
end
|
|
end
|
|
upnpFile:close()
|
|
return upnpList
|
|
end
|
|
end
|
|
end
|
|
return nil
|
|
end |