Как я могу получить локальный IP-адрес в узел.Джей?


Я не имею в виду

127.0.0.1

а что другие компьютеры будут использовать для доступа к машине, например,

192.168.1.6

5 55

5 ответов:

http://nodejs.org/api/os.html#os_os_networkinterfaces

var os = require('os');

var interfaces = os.networkInterfaces();
var addresses = [];
for (var k in interfaces) {
    for (var k2 in interfaces[k]) {
        var address = interfaces[k][k2];
        if (address.family === 'IPv4' && !address.internal) {
            addresses.push(address.address);
        }
    }
}

console.log(addresses);

https://github.com/indutny/node-ip

var ip = require("ip");
console.dir ( ip.address() );
$ npm install --save quick-local-ip

за

var myip = require('quick-local-ip');

//getting ip4 network address of local system
myip.getLocalIP4();

//getting ip6 network address of local system
myip.getLocalIP6();

моя версия, которая была необходима для компактного и однофайлового скрипта, надеюсь быть полезной для других:

var ifs = require('os').networkInterfaces();
var result = Object.keys(ifs)
  .map(x => [x, ifs[x].filter(x => x.family === 'IPv4')[0]])
  .filter(x => x[1])
  .map(x => x[1].address);

или ответить на исходный вопрос:

var ifs = require('os').networkInterfaces();
var result = Object.keys(ifs)
  .map(x => ifs[x].filter(x => x.family === 'IPv4' && !x.internal)[0])
  .filter(x => x)[0].address;

https://github.com/dominictarr/my-local-ip

$ npm install -g my-local-ip
$ my-local-ip

или

$ npm install --save my-local-ip
$ node
> console.log(require('my-local-ip')())

очень маленький модуль, который делает именно это.