module("luci.controller.pubapi.ifacestatus", package.seeall)
function index()
--entry({"click", "here", "now"}, call("iface_status_ip"), nil)
entry({"ifacewanip"}, call("iface_wan_ip"), "iface wan ip", 10).dependent=false
end
function iface_wan_ip()
local netm = require "luci.model.network".init()
local rv = { }
local ifaces= "wan"
local iface
for iface in ifaces:gmatch("[%w%.%-_]+") do
local net = netm:get_network(iface)
local device = net and net:get_interface()
if device then
local data = {
id = iface,
desc = net:get_i18n(),
proto = net:proto(),
uptime = net:uptime(),
gwaddr = net:gwaddr(),
ipaddrs = net:ipaddrs(),
ip6addrs = net:ip6addrs(),
dnsaddrs = net:dnsaddrs(),
ip6prefix = net:ip6prefix(),
errors = net:errors(),
name = device:shortname(),
type = device:type(),
typename = device:get_type_i18n(),
ifname = device:name(),
macaddr = device:mac(),
is_up = net:is_up() and device:is_up(),
is_alias = net:is_alias(),
subdevices = { }
}
for _, device in ipairs(net:get_interfaces() or {}) do
data.subdevices[#data.subdevices+1] = {
name = device:shortname(),
type = device:type(),
typename = device:get_type_i18n(),
ifname = device:name(),
macaddr = device:mac(),
is_up = device:is_up(),
}
end
rv[#rv+1] = data
end
end
if #rv > 0 then
local ifaceip = string.match(rv[1].ipaddrs[1],"%d+\.%d+\.%d+\.%d+")
luci.http.prepare_content("text/plain;charset=UTF-8")
luci.http.write(ifaceip)
return
end
luci.http.write("127.0.0.1")
end
luci 获取ifaces信息模块
最新推荐文章于 2023-04-21 11:08:46 发布
