mirror of
				https://github.com/Ysurac/openmptcprouter-feeds.git
				synced 2025-03-09 15:40:03 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			148 lines
		
	
	
	
		
			3.4 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			148 lines
		
	
	
	
		
			3.4 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<%#
 | 
						|
 Copyright 2008 Steven Barth <steven@midlink.org>
 | 
						|
 Copyright 2008-2018 Jo-Philipp Wich <jo@mein.io>
 | 
						|
 Licensed to the public under the Apache License 2.0.
 | 
						|
-%>
 | 
						|
 | 
						|
<%
 | 
						|
	local fs = require "nixio.fs"
 | 
						|
	local ipc = require "luci.ip"
 | 
						|
	local util = require "luci.util"
 | 
						|
	local stat = require "luci.tools.status"
 | 
						|
	local ver = require "luci.version"
 | 
						|
 | 
						|
	if luci.http.formvalue("status") == "1" then
 | 
						|
 | 
						|
		local sysinfo = luci.util.ubus("system", "info") or { }
 | 
						|
 | 
						|
		local meminfo = sysinfo.memory or {
 | 
						|
			total = 0,
 | 
						|
			free = 0,
 | 
						|
			buffered = 0,
 | 
						|
			shared = 0
 | 
						|
		}
 | 
						|
 | 
						|
		local swapinfo = sysinfo.swap or {
 | 
						|
			total = 0,
 | 
						|
			free = 0
 | 
						|
		}
 | 
						|
 | 
						|
		local has_dsl = fs.access("/etc/init.d/dsl_control")
 | 
						|
 | 
						|
		local ntm = require "luci.model.network".init()
 | 
						|
		local wan_nets = ntm:get_wan_networks()
 | 
						|
		local wan6_nets = ntm:get_wan6_networks()
 | 
						|
 | 
						|
		local conn_count = tonumber(
 | 
						|
			fs.readfile("/proc/sys/net/netfilter/nf_conntrack_count") or "") or 0
 | 
						|
 | 
						|
		local conn_max = tonumber(luci.sys.exec(
 | 
						|
			"sysctl -n -e net.nf_conntrack_max net.ipv4.netfilter.ip_conntrack_max"
 | 
						|
		):match("%d+")) or 4096
 | 
						|
 | 
						|
		local rv = {
 | 
						|
			uptime     = sysinfo.uptime or 0,
 | 
						|
			localtime  = os.date(),
 | 
						|
			loadavg    = sysinfo.load or { 0, 0, 0 },
 | 
						|
			memory     = meminfo,
 | 
						|
			swap       = swapinfo,
 | 
						|
			connmax    = conn_max,
 | 
						|
			conncount  = conn_count,
 | 
						|
			wifinets   = stat.wifi_networks()
 | 
						|
		}
 | 
						|
 | 
						|
		if #wan_nets > 0 then
 | 
						|
			local k, v
 | 
						|
 | 
						|
			rv.wan = { }
 | 
						|
 | 
						|
			for k, v in pairs(wan_nets) do
 | 
						|
				local dev = v:get_interface()
 | 
						|
				local link = dev and ipc.link(dev:name())
 | 
						|
 | 
						|
				local wan_info = {
 | 
						|
					ipaddrs = v:ipaddrs(),
 | 
						|
					gwaddr  = v:gwaddr(),
 | 
						|
					dns     = v:dnsaddrs(),
 | 
						|
					expires = v:expires(),
 | 
						|
					uptime  = v:uptime(),
 | 
						|
					proto   = v:proto(),
 | 
						|
					i18n    = v:get_i18n(),
 | 
						|
					ifname  = v:ifname(),
 | 
						|
					link    = v:adminlink(),
 | 
						|
					mac     = dev and dev:mac(),
 | 
						|
					type    = dev and dev:type(),
 | 
						|
					name    = dev and dev:get_i18n(),
 | 
						|
					ether   = link and link.type == 1
 | 
						|
				}
 | 
						|
 | 
						|
				rv.wan[#rv.wan+1] = wan_info
 | 
						|
			end
 | 
						|
		end
 | 
						|
 | 
						|
		if #wan6_nets > 0 then
 | 
						|
			local k, v
 | 
						|
 | 
						|
			rv.wan6 = { }
 | 
						|
 | 
						|
			for k, v in pairs(wan6_nets) do
 | 
						|
				local dev = v:get_interface()
 | 
						|
				local link = dev and ipc.link(dev:name())
 | 
						|
				local wan6_info = {
 | 
						|
					ip6addrs  = v:ip6addrs(),
 | 
						|
					gw6addr   = v:gw6addr(),
 | 
						|
					dns       = v:dns6addrs(),
 | 
						|
					ip6prefix = v:ip6prefix(),
 | 
						|
					uptime    = v:uptime(),
 | 
						|
					proto     = v:proto(),
 | 
						|
					i18n      = v:get_i18n(),
 | 
						|
					ifname    = v:ifname(),
 | 
						|
					link      = v:adminlink(),
 | 
						|
					mac       = dev and dev:mac(),
 | 
						|
					type      = dev and dev:type(),
 | 
						|
					name      = dev and dev:get_i18n(),
 | 
						|
					ether     = link and link.type == 1
 | 
						|
				}
 | 
						|
 | 
						|
				rv.wan6[#rv.wan6+1] = wan6_info
 | 
						|
			end
 | 
						|
		end
 | 
						|
 | 
						|
		if has_dsl then
 | 
						|
			local dsl_stat = luci.sys.exec("/etc/init.d/dsl_control lucistat")
 | 
						|
			local dsl_func = loadstring(dsl_stat)
 | 
						|
			if dsl_func then
 | 
						|
				rv.dsl = dsl_func()
 | 
						|
			end
 | 
						|
		end
 | 
						|
 | 
						|
		luci.http.prepare_content("application/json")
 | 
						|
		luci.http.write_json(rv)
 | 
						|
 | 
						|
		return
 | 
						|
	end
 | 
						|
-%>
 | 
						|
 | 
						|
<%+header%>
 | 
						|
 | 
						|
<h2 name="content"><%:Status%></h2>
 | 
						|
 | 
						|
<%-
 | 
						|
	local incdir = util.libpath() .. "/view/admin_status/index/"
 | 
						|
	if fs.access(incdir) then
 | 
						|
		local _, inc
 | 
						|
		local includes = {}
 | 
						|
		for inc in fs.dir(incdir) do
 | 
						|
			if inc:match("%.htm$") then
 | 
						|
				includes[#includes + 1] = inc:gsub("%.htm$", "")
 | 
						|
			end
 | 
						|
		end
 | 
						|
		for _, inc in luci.util.vspairs(includes) do
 | 
						|
			include("admin_status/index/" .. inc)
 | 
						|
		end
 | 
						|
	end
 | 
						|
-%>
 | 
						|
 | 
						|
<script type="text/javascript" src="<%=resource%>/view/status/index.js"></script>
 | 
						|
 | 
						|
<%+footer%>
 |