【问题标题】:how to check if an address is a loopback address nodejs如何检查地址是否是环回地址nodejs
【发布时间】:2016-03-03 15:50:38
【问题描述】:

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

【问题讨论】:

    标签: javascript node.js networking


    【解决方案1】:

    我最终只是在这里做了一个基于正则表达式的解决方案:

    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
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-11
      • 2013-08-22
      • 1970-01-01
      • 2018-10-22
      • 2021-09-01
      • 2012-11-10
      • 1970-01-01
      相关资源
      最近更新 更多