我有一个简单的 Node.js 程序在我的机器上运行,我想获取运行我的程序的 PC 的本地 IP 地址。我如何使用 Node.js 获取它?
在 Node.js 中获取本地 IP 地址
IT技术
javascript
node.js
ip
2021-01-14 13:33:01
6个回答
此信息可以在os.networkInterfaces()
, — 一个对象中找到,该对象将网络接口名称映射到其属性(例如,这样一个接口可以具有多个地址):
'use strict';
const { networkInterfaces } = require('os');
const nets = networkInterfaces();
const results = Object.create(null); // Or just '{}', an empty object
for (const name of Object.keys(nets)) {
for (const net of nets[name]) {
// Skip over non-IPv4 and internal (i.e. 127.0.0.1) addresses
if (net.family === 'IPv4' && !net.internal) {
if (!results[name]) {
results[name] = [];
}
results[name].push(net.address);
}
}
}
// 'results'
{
"en0": [
"192.168.1.101"
],
"eth0": [
"10.0.0.101"
],
"<network name>": [
"<ip>",
"<ip alias>",
"<ip alias>",
...
]
}
// results["en0"][0]
"192.168.1.101"
运行程序来解析结果似乎有点不确定。这是我使用的。
require('dns').lookup(require('os').hostname(), function (err, add, fam) {
console.log('addr: ' + add);
})
这应该返回您的第一个网络接口本地 IP 地址。
https://github.com/indutny/node-ip
var ip = require("ip");
console.dir ( ip.address() );
您可以使用osmodule找到您机器的任何 IP 地址- 这是Node.js的本机:
var os = require('os');
var networkInterfaces = os.networkInterfaces();
console.log(networkInterfaces);
您需要做的就是调用os.networkInterfaces(),您将获得一个易于管理的列表 - 比通过联盟运行ifconfig更容易。
安装一个名为ip
如下的module:
npm install ip
然后使用此代码:
var ip = require("ip");
console.log(ip.address());
其它你可能感兴趣的问题