首页 > 编程语言 >node 获取本机ip地址

node 获取本机ip地址

时间:2022-12-08 12:33:43浏览次数:36  
标签:node false os ifaces ip let address 本机

方法一:
 node 14之前的

require('os').networkInterfaces()[Object.keys(require('os').networkInterfaces())[0]][1].address + ':8080' 

vue.config.js

module.exports = {
  lintOnSave: false, // 是否开启eslint保存检测,有效值:ture | false | 'error'
  publicPath: '',
  outputDir: process.env.outputDir,
  devServer: {
    public: require('os').networkInterfaces()[Object.keys(require('os').networkInterfaces())[0]][1].address + ':8080',
    disableHostCheck: true,
    open: true,
    proxy: {
      '/api': {
        target: 'http://xxx.com',
        pathRewrite: {'^/api' : ''},
        changeOrigin: true,    
        secure: false,   
      },
    }
  },
};

 

方法二:

node 14 之后的

const os = require('os');
/**
 * 获取当前机器的ip地址
 */
 function getIpAddress() {
  let ifaces = os.networkInterfaces()
  for (let dev in ifaces) {
      let iface = ifaces[dev]
      for (let i = 0; i < iface.length; i++) {
          let { family, address, internal } = iface[i]
          if (family === 'IPv4' && address !== '127.0.0.1' && !internal) {
              return address
          }
      }
  }
}

 vue.config.js

const os = require('os');
/**
 * 获取当前机器的ip地址
 */
 function getIpAddress() {
  let ifaces = os.networkInterfaces()
  for (let dev in ifaces) {
      let iface = ifaces[dev]
      for (let i = 0; i < iface.length; i++) {
          let { family, address, internal } = iface[i]
          if (family === 'IPv4' && address !== '127.0.0.1' && !internal) {
              return address
          }
      }
  }
}

module.exports = {
  lintOnSave: false, // 是否开启eslint保存检测,有效值:ture | false | 'error'
  publicPath: '',
  outputDir: process.env.outputDir,
  devServer: {
    public: getIpAddress() + ':8080',
    disableHostCheck: true,
    open: true,
    proxy: {
      '/api': {
        target: 'http://mh.885505.com',
        pathRewrite: {'^/api' : ''},
        changeOrigin: true,    
        secure: false,   
      },
    }
  },
};

 效果:

 

 注: 我之前用的是node 8、 node 12  用的第一种方法,后来升级node 14  运行时报错了 找不到 address , 方法二可以;

标签:node,false,os,ifaces,ip,let,address,本机
From: https://www.cnblogs.com/wangyihong/p/16965765.html

相关文章

  • how to import a CommonJS module as an ECMAScript module All In One
    howtoimportaCommonJSmoduleasanECMAScriptmoduleAllInOneCJSvsESM.mjsimport.cjsmodulecjs-module.cjsconstsum=(a,b)=>a+b;//export......
  • IPQ8074 Qualcomm Embedded Board Offers MU-MIMO 802.11ax WiFI 6//industrial wif
    QualcommIPQ8072IPQ8074EmbeddedBoardOffers MU-MIMO802.11axWiFI6//industrialwifi6moudle NowIwillintroduceyouahighqualityboardwhichisvery......
  • ubuntu部署nodejs项目
    安装nodejsaptupdatecurl-sLhttps://deb.nodesource.com/setup_16.x|sudobash-sudoapt-yinstallnodejs aptinstall mysql-servermysql-uroot-pCR......
  • python 依据IP查找其所属网段
    #coding='utf-8'#依据excel表格中所提供的IP,在另一张表中查找其所属网段importpandasaspdimportIPydf=pd.read_excel('net.xlsx')col_name=df.columns.t......
  • 四、程咬金——JavaScript基础
     一、前言Ajax,异步JavaScript和XML,前面已经解释过,所以Ajax的学习还包含JavaScript和XML,这里我们先看JavaScript,而JavaScript实际上又是包含JavaScript语法和HTMLDOM即文档......
  • 《悟透javascript》学习笔记
    《悟透javascript》学习笔记 一、         前言 二、         回归简单、基本类型 三、         表演、似类却不是类 四、      ......
  • 《悟透javascript》学习笔记:X、深入继承
    引言      JavaScript不是按面向对象的思想设计的程序语言,所以它不具备像现有的面向对象的语言那样的功能,但是面向对象的思想是如此的深入人心,以至于JavaScript也削......
  • AD+DIGIPCBA学习知识点
    PCB封装网站:SnapEDA,注册账号可以下载,具有2D平面和3D模型图。UltraLibrarian,注册账号可以下载,可以提交需求。网站封装会进行完善下载下来的是脚本文件,需要运行AD里面的脚本(......
  • 再读《悟透javascript》之五、五子棋
    前言     五子棋是个很有趣的游戏,在用javascript开发之后,我发现其实ai算法才是最难的,这里的ai算法是直接借鉴自其它的ai算法。  代码如下:<htmlxmlns="http://www.w3......
  • 新增 EtherNet/IP 驱动,v2.3 即将发布
    11月我们发布了​​Neuron​​2.2.11版本,主要优化修复了一系列在2.2版本中发现的问题,同时为2.3版本的发布做准备:增加EtherNet/IP驱动,完善CNCFOOCAS驱动,OPCDA......