modem_location = "right" rednet.host("lns", "default") rednet.open(modem_location) local data = {} function save_data() db = fs.open("lns.db", "w") db.write(textutils.serialize(data)) db.close() end function load_data() if fs.exists("lns.db") then db = fs.open("lns.db", "r") db_contents = db.readAll() db.close() data = textutils.unserialize(db_contents) end end function split (inputstr, sep) if sep == nil then sep = "%s" end local t={} for str in string.gmatch(inputstr, "([^"..sep.."]+)") do table.insert(t, str) end return t end load_data() while true do client_id, msg = rednet.receive() request = msg if request.action == nil or request.hostname == nil then rednet.send(client_id, "invalid request") return end if request.action == "lookup" then -- check if hostname in data if request.hostname == nil then rednet.send(client_id, "not found") else rednet.send(client_id, data[request.hostname]) end end if request.action == "reload" then load_data() rednet.send(client_id, "ok") end if request.action == "register" then data[request.hostname] = client_id save_data() rednet.send(client_id, "ok") end end