node.js获取本机IP地址

想在node中获取本机ip,需要先判断操作系统,可以通过process.platform来判断,MAC下得到的值是darwin,window下得到的值是win32;

然后再利用os模块的networkInterfaces()可以获取所有网卡信息;从其中就可以找到需要的ip;下面是个小例子

var os = require('os');
var interfaces = os.networkInterfaces();
var hostIp = function() {
    var IPv4;
    if(process.platform === 'darwin') {
        for(var i = 0; i < interfaces.en0.length; i++) {
            if(interfaces.en0[i].family == 'IPv4') {
                IPv4 = interfaces.en0[i].address;
            }
        }
    } else if(process.platform === 'win32') {
        for(var devName in interfaces) {
            var iface = interfaces[devName];
            for(var i = 0; i < iface.length; i++) {
                var alias = iface[i];
                if(alias.family === 'IPv4' && alias.address !== '127.0.0.1' && !alias.internal) {
                    IPv4 = alias.address;
                }
            }
        }
    }

    return IPv4;
}
hostIp()

当然也可以通过os.type来判断操作系统。MAC下返回的仍然是darwin;而windows 下返回的是window_NT

posted on 2017-04-30 16:57  robotlee8  阅读(2221)  评论(0)    收藏  举报

导航