javascript - Nodejs如何检查一个地址是否是环回地址

标签 javascript node.js networking

我正在尝试编写一个函数来返回网络中第一个非环回 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/

相关文章:

JavaScript 、 CSS 和 AngularJS 混合挑战

javascript - 将 2D 数组转换为 1D 数组

javascript - socket.io可以用来制作像whatsapp这样的聊天应用程序吗?

c# - 联网流程

javascript - 在javascript中检查字符串中是否只有标点符号

javascript - CSV 导入脚本在 Google 电子表格中不起作用

node.js - Mongoose findById 未找到结果时不会返回 null

javascript - 用于发布的 Angular Node 模块的版本控制

linux - DNS查询功能可区分不存在的主机和网络错误

javascript - 解构或赋值运算符