我有一个简单的Node.js程序在我的机器上运行,我想获得我的程序正在运行的PC的本地IP地址。我如何在Node.js中获得它?


当前回答

var ip = req.headers['x-forwarded-for'] || req.socket.remoteAddress 

其他回答

Use:

var os = require('os');
var networkInterfaces = os.networkInterfaces();
var arr = networkInterfaces['Local Area Connection 3']
var ip = arr[1].address;

你可以通过使用os模块找到你机器的任何IP地址-这是Node.js的本机:

var os = require('os');

var networkInterfaces = os.networkInterfaces();

console.log(networkInterfaces);

你所需要做的就是调用os.networkInterfaces(),你会得到一个容易管理的列表——比按联盟运行ifconfig要简单。

使用内部ip:

const internalIp = require("internal-ip")

console.log(internalIp.v4.sync())

如果你不想安装依赖,并且正在运行*nix系统,你可以这样做:

hostname -I

你会得到主机的所有地址,你可以在node中使用这个字符串:

const exec = require('child_process').exec;
let cmd = "hostname -I";
exec(cmd, function(error, stdout, stderr)
{
  console.log(stdout + error + stderr);
});

是一行代码,你不需要像'os'或'node-ip'这样可能会意外增加代码复杂性的其他库。

hostname -h

也是你的朋友;-)

希望能有所帮助!

安装一个名为ip的模块,如下:

npm install ip

然后使用下面的代码:

var ip = require("ip");
console.log(ip.address());