nodejs获取本机内网和外网ip地址的实现代码_node.js

实现代码:

复制代码 代码如下:

var os = require('os');
function getLocalIP() {
    var map = [];
    var ifaces = os.networkInterfaces();
    console.log(ifaces);

    for (var dev in ifaces) {
        if (dev.indexOf('eth0') != -1) {
            var tokens = dev.split(':');
            var dev2 = null;
            if (tokens.length == 2) {
                dev2 = 'eth1:' + tokens[1];
            } else if (tokens.length == 1) {
                dev2 = 'eth1';
            }
            if (null == ifaces[dev2]) {
                continue;
            }

            // 找到eth0和eth1分别的ip
            var ip = null, ip2 = null;
            ifaces[dev].forEach(function(details) {
                if (details.family == 'IPv4') {
                    ip = details.address;
                }
            });
            ifaces[dev2].forEach(function(details) {
                if (details.family == 'IPv4') {
                    ip2 = details.address;
                }
            });
            if (null == ip || null == ip2) {
                continue;
            }

            // 将记录添加到map中去
            if (ip.indexOf('10.') == 0 ||
                ip.indexOf('172.') == 0 ||
                ip.indexOf('192.') == 0) {
                map.push({"intranet_ip" : ip, "internet_ip" : ip2});
            } else {
                map.push({"intranet_ip" : ip2, "internet_ip" : ip});
            }
        }
    } 
    return map;
}

console.log(getLocalIP());

时间: 2024-09-21 01:03:20

nodejs获取本机内网和外网ip地址的实现代码_node.js的相关文章

port-关于UDP发包打洞问题,同一内网走外网测试失败

问题描述 关于UDP发包打洞问题,同一内网走外网测试失败 不得不吐槽,那个标题栏的问题真心烦躁. 问题是是这样的,做一个UDP的P2P系统,获取到了出口IP和PORT,双方都同时发包,建立不了连接?路由器的问题? 解决方案 这个需要你看你的路由器的NAT类型了,完全锥型肯定是可以连接上的,至于其他的需要你多测测了 解决方案二: UDP是无连接的,靠IP路由发送到目标.你用的是内网IP还是公网IP?必须用公网IP.

如何禁止外来设备访问企业内网和外网?

  现代化办公,每个企业内部都会建立自己的内部局域网,并设置服务器,用于存储和共享日常工作中所需的各类数据,很多员工也会共享自己电脑中的一些数据,以便于局域网其他用户访问和使用,这种方式即节省了数据传递的时间,更提升了每个人的工作效率,可以说,非常便利.但是,由此引发的信息安全.网络安全问题也逐步暴露出来,我们不得不引起重视. 1.企业外来人员携带笔记本.手机.平板等,接入企业局域网,可以任意访问局域网共享资源,其中也包括企业商业机密或者重要文件,一旦被恶意修改.拷贝.删除,后果不堪设想,将会使

服务器-java代码判断本机是否连接上外网

问题描述 java代码判断本机是否连接上外网 需要通过代码判断本地网络是否连接正常,正常情况下通过activeMQ的应答机制,服务器可以正常向客户端推送消息,客户端通过队列监听接收activeMQ推送的消息. 现在是问题是网络中断后无法请求数据,当检查到网络重连后需要调用接口重新请求服务器发送数据,现在的问题就是想要判断出网络的断开和重连. 解决方案 最简单的就是轮询.寻找一个外网上的主机作为参照,能连上就是联网,否则就是不联网. 你提出的思路有问题,如果网络在网关或者路由器断开,没法判断. 解

固定ip 掉线-奇怪现象:固定IP经常外网掉线,从内网访问外网后自动恢复

问题描述 奇怪现象:固定IP经常外网掉线,从内网访问外网后自动恢复 电信光纤带4个固定IP,通过光纤猫至交换机后,两台服务器使用其中两个固定IP,一台windows 2008,一台ubuntu 12.04. 如服务器一段时间与外网没有通信,从外网就无法访问两台服务器,但直接从机房登录服务器能访问外网,只要向外网发送数据包后(如ping 外网地址),即恢复至能从外网访问. 已经排除机器体眠和交换机故障.请高人解释!

dns-跪求大神!关于内网访问外网怎么设置DNS才能速度快!

问题描述 跪求大神!关于内网访问外网怎么设置DNS才能速度快! 大神们 我想请教一个问题 :比如本地IP 1.1 外网IP 1.2 问题是内网的机子访问外网的IP非常慢, 怎么设置DNS? 解决方案 把内网DNS设置成当地DNS,当地DNA可以在百度搜索出来的 解决方案二: 你直接ip访问快吗,不一定是dnswen?t 解决方案三: 谷歌dbs8.8.8.8试试 解决方案四: 先Ping一个看结果.速度慢dns的因素不多 解决方案五: 这不是DNS设置的问题,实际上网络流量拥堵没解决. 分成几个

服务器-关于网站建立内网和外网的问题,跪求高手给详细说一下,我是菜鸟

问题描述 关于网站建立内网和外网的问题,跪求高手给详细说一下,我是菜鸟 我制作了一个JSP网站,这个网站有一部分是打算在外网上用的,有一部分是在内网上用的,我该怎么做,需要把外网上的这部分发布到外网上(PS:如何发布到外网上,在外网上怎么访问?),而且外网上的数据使用的是我服务器上的数据,并且内网上的页面也可以访问这部分数据,我该怎么做? 解决方案 内外网用一个数据库就OK了

java web-WEB工程,分内网,外网用户,是否需要两个工程?

问题描述 WEB工程,分内网,外网用户,是否需要两个工程? java web工程.区分内网用户和外网用户,外网用户访问内网发布的内容,这情况的话,需要针对外网用户和内网用户制作两个web工程吗? 解决方案 是不是需要只取决于一个问题,你的内网用户和外网用户需要彻底分开么?各自干各自的,互相不知道对方的存在,系统中所有的数据都是独立的.这种情况最简单的就是做一个项目部署成2个独立的网站. 否则,还是搞在一起,内网外网部署成一个网站,绑定不同的ip实现同时访问,同时用一个字段区分用户是内网还是外网的

获取虚机内网ip

问题描述 一个机器多个虚机共用一个外网ip,用java想单独去某个机器的内网ip,但是取出来的是一样的外网ip,求解!! 解决方案

路由表配置及多网卡同时使用内网和外网

  CMD命令:route 子命令1:route print 查看路由表 子命令2:route add 添加静态路由 子命令3:route delete 删除静态路由 查看 使用子命令1结果如下图 (注:红框为动态路由[由系统管理,无需要人工管理],绿框为静态路由[可由人工自由增删]) 可以看出路由表由以下几部分组成:网络地址.网络掩码.网关地址.跃点数,这里我们主要关心网络地址和网关地址,是指本机访问的目标IP时使用的网关(也就是网卡),因此我们需要配置XXX地址使用XXX网关即可达到我们的目