From a122509dfeb308817a75b082f76c28d5a9966008 Mon Sep 17 00:00:00 2001 From: Ted Trask Date: Wed, 20 Aug 2008 18:48:11 +0000 Subject: Modified interfaces model to add a function to parse ip addr. git-svn-id: svn://svn.alpinelinux.org/acf/alpine-baselayout/trunk@1386 ab2d0c66-481e-0410-8bed-d214d4d58bed --- interfaces-model.lua | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/interfaces-model.lua b/interfaces-model.lua index bfa9bb8..0d27ec0 100644 --- a/interfaces-model.lua +++ b/interfaces-model.lua @@ -406,6 +406,15 @@ iface.iproute = function () return cfe({ type="longtext", value=cmdresult, label="ip route" }) end +iface.ifconfig = function () + local cmd = "PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin ifconfig" + local f = io.popen(cmd) + local cmdresult = f:read("*a") + f:close() + + return cfe({ type="longtext", value=cmdresult, label="ifconfig" }) +end + ------------------------------------------------------------------------------- -- Public Methods ------------------------------------------------------------------------------- @@ -465,3 +474,18 @@ write_file = function (newfile) return get_file() end + +get_addresses = function() + local ipaddr = iface.ipaddr() + -- now parse the result to find the interfaces and IP addresses + local retval = {} + local interface + for line in string.gmatch(ipaddr.value, "[^\n]*\n?") do + if string.find(line, "^%x+:%s+%w+:") then + interface=string.match(line, "^%x+:%s+(%w+):") + elseif string.find(line, "^%s*inet%s") then + table.insert(retval, {interface=interface, ipaddr=string.match(line, "^%s*inet%s+([%d%.]+)")}) + end + end + return cfe({ type="structure", value=retval, label="Interface IP Addresses" }) +end -- cgit v1.2.3