我有一个简单的Node.js程序在我的机器上运行,我想获得我的程序正在运行的PC的本地IP地址。我如何在Node.js中获得它?
当前回答
使用内部ip:
const internalIp = require("internal-ip")
console.log(internalIp.v4.sync())
其他回答
如果你喜欢简洁的东西,下面是使用Lodash:
Var OS = require(' OS '); Var _ = require('lodash'); var firstLocalIp = _(os.networkInterfaces()).values().flatten().where({family: 'IPv4', internal: false}).pluck('address').first(); console.log('第一个本地IPv4地址是' + firstLocalIp);
https://github.com/indutny/node-ip
var ip = require("ip");
console.dir ( ip.address() );
一行程序只用于macOS的第一个本地主机地址。
当在macOS上开发应用程序时,你想在手机上测试它,并且需要你的应用程序自动选择本地主机IP地址。
require('os').networkInterfaces().en0.find(elm => elm.family=='IPv4').address
这只是提到如何自动查找ip地址。 要测试这个,你可以去终端点击
node
os.networkInterfaces().en0.find(elm => elm.family=='IPv4').address
输出将是您的本地主机IP地址。
使用npm ip模块:
var ip = require('ip');
console.log(ip.address());
> '192.168.0.117'
公认的答案是异步的。我想要一个同步版本:
var os = require('os');
var ifaces = os.networkInterfaces();
console.log(JSON.stringify(ifaces, null, 4));
for (var iface in ifaces) {
var iface = ifaces[iface];
for (var alias in iface) {
var alias = iface[alias];
console.log(JSON.stringify(alias, null, 4));
if ('IPv4' !== alias.family || alias.internal !== false) {
debug("skip over internal (i.e. 127.0.0.1) and non-IPv4 addresses");
continue;
}
console.log("Found IP address: " + alias.address);
return alias.address;
}
}
return false;
推荐文章
- Javascript和regex:分割字符串并保留分隔符
- 如何检查DST(日光节约时间)是否有效,如果是,偏移量?
- 如何打破_。在underscore.js中的每个函数
- 如何在jQuery中获得当前日期?
- 如何创建一个日期对象从字符串在javascript
- 输入触发器按钮单击
- 获取对象的属性名
- 如何检查用户是否可以回到浏览器历史
- 相当于字符串。jQuery格式
- 如何在vue-cli项目中更改端口号
- Angular 2模板中的标签是什么意思?
- JavaScript .includes()方法的多个条件
- 窗口。亲近与自我。close不关闭Chrome中的窗口
- 同步和异步编程(在node.js中)的区别是什么?
- 在d3.js中调整窗口大小时调整svg的大小