Как я могу получить локальный IP-адрес в узел.Джей?
Я не имею в виду
127.0.0.1
а что другие компьютеры будут использовать для доступа к машине, например,
192.168.1.6
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')())
очень маленький модуль, который делает именно это.