Richard Allred
2019-08-03 99e73490b45f1f76040216418afeec9ff9770e57
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
var os = require('os');
 
exports.context = function(server, path) {
    if (!server)
        done('has to provide a restify server object');
        
    server.get(path + '/host', this.serverInfo);
};
 
exports.serverInfo = function(req, res, next) {
    var address;
    var ifaces = os.networkInterfaces();
 
    for (var dev in ifaces) {
        var iface = ifaces[dev].filter(function(details) {
            return details.family === 'IPv4' && details.internal === false;
        });
        if (iface.length > 0)
            address = iface[0].address;
    }
 
    var reply = {
        ip: address,
        hostname: os.hostname()
    };
    res.json(reply);
    next();
};