This came as a question today. This following code could be done using python in Iguana 4, it’s just a whole lot easier with the Translator to write the same logic in Lua.
This module does the following:
- Invokes ipconfig using popen and picks out the IPv4 address of the server.
- Opens and parses IguanaConfiguration.xml to get the port and optional label for the server.

The above screen shot shows good usage of this module – we invoke server.Info() just one time when the script is first executed. The function returns a Lua table of the information about the server. In this case the server label was set to Training.
Other good techniques for getting server information are to look at environmental variables which you can obtain via os.getenv() in Lua.
Here’s the source code for the module:
server = {}
local function ReadFile(FileName)
local F = io.open(FileName)
local X = F:read("*all")
F:close()
return X
end
function GetServer()
local X = ReadFile('IguanaConfiguration.xml')
X = xml.parse{data=X}
local L=''
if X.iguana_config.web_config:childCount('server_label') > 0 then
L = X.iguana_config.web_config.server_label:nodeValue()
end
return L, X.iguana_config.web_config.port:nodeValue()
end
local function GetHost()
local F,L,IP
F = io.popen('ipconfig')
L = F:read("*all")
F:close()
IP = L:match('IP Address.*: (%d*.%d*.%d*.%d*).*Sub')
if not IP then
IP = L:match('IPv4 Address.*: (%d*.%d*.%d*.%d*).*Sub')
end
return IP
end
function server.Info()
local Result = {}
Result.IP = GetHost()
Result.Label, Result.Port = GetServer()
return Result
end