os.networkInterfaces()是node-webkit应用程序中用于获取客户端计算机的网络相关数据的函数。 对于我的机器来说就像
我编写了一个代码来获取要在我的nw.js应用中使用的客户端计算机的IPv4地址。逻辑是;从内部 false 且系列 IPv4 的对象中找到地址。这是代码。
$.each(os.networkInterfaces(),function(key,value){
$(value).each(function(index,item){
if(item.internal==false && item.family=='IPv4'){
console.log(item.address); // result is "10.0.8.42" from the above picture
}
});
});
还有其他方法可以实现这一目标。在这种情况下,我们可以在这里应用jquery过滤器方法吗?
答案 0 :(得分:3)
不要使用jQuery - 只需使用常规的vanilla JS Array.reduce和Array.filter:
let interfaces = os.networkInterfaces()
let matchingObjects = Object.keys(interfaces).reduce(function(matches, key) {
return matches.concat(interfaces[key].filter(function(face) {
return face.internal === false && face.family === "IPv4"
}).map(function(face) {
return face.address; //just get the address
}));
}, []);