我正在尝试编写一个函数来返回网络中第一个非环回 ipv4 地址。除了检查地址是否是环回地址之外,我可以做所有事情,有什么办法可以做到这一点吗?这是我的功能:
function externalIP(){
var addrs = os.networkInterfaces();
var address = ""
for(var key in addrs){
for (var k in addrs[key]) {
if(addrs[key][k].family == "IPv4"){
console.log(addrs[key][k].address);
/* HERE I NEED TO CHECK IF THE ADDRESS IS A LOOPBACK ADDRESS */
address = addrs[key][k].address
break
}
}
// check if address is already set we can return the result
if (address != ""){
break
}
}
return address
}
最佳答案
我最终只是在这里做了一个基于正则表达式的解决方案:
function externalIP() {
var addrs = os.networkInterfaces();
var address = ""
for (var key in addrs) {
for (var k in addrs[key]) {
if (addrs[key][k].family == "IPv4") {
// Check if loopback address
var re = /^(127\.[\d.]+|[0:]+1|localhost)$/
var result = addrs[key][k].address.match(re)
if (result == null) {
address = addrs[key][k].address;
break
}
}
}
// If address is already set we can return the result
if (address) {
break
}
}
return address
}
关于javascript - Nodejs如何检查一个地址是否是环回地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35776771/