+require("luci.model.uci")
+require("luci.sys")
+require("luci.ip")
+
+function byte_format(byte)
+ local suff = {"B", "KB", "MB", "GB", "TB"}
+ for i=1, 5 do
+ if byte > 1024 and i < 5 then
+ byte = byte / 1024
+ else
+ return string.format("%.2f %s", byte, suff[i])
+ end
+ end
+end
+
+function network_get_addresses(net)
+ local addr = {}
+ local ipv4 = luci.model.uci.get_statevalue("network", net, "ipaddr")
+ local mav4 = luci.model.uci.get_statevalue("network", net, "netmask")
+ local ipv6 = luci.model.uci.get_statevalue("network", net, "ip6addr")
+
+ if ipv4 and mav4 then
+ ipv4 = luci.ip.IPv4(ipv4, mav4)
+
+ if ipv4 then
+ table.insert(addr, ipv4:string())
+ end
+ end
+
+ if ipv6 then
+ table.insert(addr, ipv6)
+ end
+
+ luci.model.uci.foreach("network", "alias",
+ function (section)
+ if section.interface == net then
+ if section.ipaddr and section.netmask then
+ local ipv4 = luci.ip.IPv4(section.ipaddr, section.netmask)
+
+ if ipv4 then
+ table.insert(addr, ipv4:string())
+ end
+ end
+
+ if section.ip6addr then
+ table.insert(addr, section.ip6addr)
+ end
+ end
+ end
+ )
+
+ return addr
+end