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

实现代码:


代码如下:

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());

(0)

相关推荐

  • js获取IP地址的方法小结

    1,js取得IP地址的方法一 <script src="http://pv.sohu.com/cityjson?ie=utf-8"></script> <script type="text/<A class=infotextkey href="http://www.jb51.net/" target=_blank>javascript</A>"> document.write(retur

  • JSP 获取真实IP地址的代码

    但是在通过了 Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了.如果使用了反向代理软件,用 request.getRemoteAddr()方法获取的IP地址是:127.0.0.1或 192.168.1.110,而并不是客户端的真实IP. 经过代理以后,由于在客户端和服务之间增加了中间层,因此服务器无法直接拿到客户端的 IP,服务器端应用也无法直接通过转发请求的地址返回给客户端.但是在转发请求的HTTP头信息中,增加了X-FORWARDED-FOR信息.用以跟踪原有的客户端

  • JS获取IP、MAC和主机名的五种方法

    今天在搞JS(javascript)获取客户端IP的小程序,上网搜了下,好多在现在的系统和浏览器中的都无效,很无奈,在Chrome.FireFox中很少搞到直接利用ActiveX获取IP等的JS脚本.下面的代码是我在所有windowsNT5.0及以上的系统上都测试通过的,给出代码: 方法一(只针对IE且客户端的IE允许AcitiveX运行,通过平台:XP,SERVER03,2000): 获取客户端IP. 复制代码 代码如下: <HTML> <HEAD> <TITLE>G

  • js获取ip和地区

    这个接口是搜狐的目前是可用的, 就是不知道以后会不会失效 效果图: 代码如下: <!doctype html> <html> <head> <meta charset="utf-8"> <title>t1</title> <meta content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0"

  • js获取客户端外网ip的简单实例

    var wwip=""; $(function(){ $(document).ready( function() { $.getJSON( "http://smart-ip.net/geoip-json?callback=?", function(data){ alert( data.host); wwip=data.host; } ); }); }); 这个问题查了很多资料,都不可以,这个还好用. 例子,js获取本地与外网IP地址. <script lang

  • JS实现的验证身份证及获取地区功能示例

    本文实例讲述了JS实现的验证身份证及获取地区功能.分享给大家供大家参考,具体如下: 这里的代码可以用来验证身份证号,并且根据身份证号来判断是哪个省份及性别 代码示例: <head > <title></title> <script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script> </head> <body

  • Jsoup获取全国地区数据属性值(省市县镇村)

    jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址.HTML文本内容.它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据. 最近手头在做一些东西,需要一个全国各地的地域数据,从省市区到县镇乡街道的.各种度娘,各种谷歌,都没找到一个完整的数据.最后功夫不负有心人,总算找到一份相对来说比较完整的数据,但是这里的数据也只是精确到镇级别,没有村一级的数据(后来通过分析数据源我知道了为什么,呵呵),在加上博主提供的有些数据存在冗余,对于有

  • JavaScript获取客户端IP的方法(新方法)

    很久以来,我都是经过http://fw.qq.com/ipaddress来得到客户端用户的IP,这个方法简单.快速.实用 . 我们调用它的写法是: <script type="text/javascript" src="http://fw.qq.com/ipaddress"></script> 它可以返回用户IP和地点,比喻: var IPData = new Array("220.181.108.85","&q

  • JS获取客户端IP地址、MAC和主机名的7个方法汇总

    今天在搞JS(javascript)获取客户端IP的小程序,上网搜了下,好多在现在的系统和浏览器中的都无效,很无奈,在Chrome.FireFox中很少搞到直接利用ActiveX获取IP等的JS脚本.下面的代码是我在所有windowsNT5.0及以上的系统上都测试通过的,给出代码: 一.使用JS获取客户端IP的几个方法 方法一(只针对IE且客户端的IE允许AcitiveX运行,通过平台:XP,SERVER03,2000). 获取客户端IP代码: 复制代码 代码如下: <HTML> <HE

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

    实现代码: 复制代码 代码如下: 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(':');

  • 用shell脚本实现自动切换内网和外网实现高可用

    首先说明下我们的配置文件,都是类似格式的,假如内网是192.168.0.3,外网是123.123.123.123,配置文件如下: $db['salver']['hostname'] = '192.168.0.3:3306';//$db['salver']['hostname'] = '123.123.123.123:3306'; 这个时候就是外网是注释的状态.走的是内网.说下思路,就是一个配置文件,复制出来2分放到别的地方,这两份一个里面设置的是内网,一个里面设置的是外网,如果内网不通的情况下,

  • Java 获取本机IP地址的实例代码

    目录 前言 一.规则 二.获取 1.使用 2.工具类 前言 在Java中如何准确的获取到本机IP地址呢?网上大部分的做法是InetAddress.getLocalHost().getHostAddress().这的确能获取到本机IP地址,但是是不准确的.因为忽略了一个问题,网络环境是多变的,一台计算机不同的网卡有多个IP地址,Lan.WiFi.蓝牙.热点.虚拟机网卡等. 一.规则 127.xxx.xxx.xxx 属于 “loopback” 地址,即只能你自己的本机可见,就是本机地址,比较常见的有

  • asp.net 获取客户端浏览器访问的IP地址的实例代码

    本文介绍了asp.net 获取客户端浏览器访问的IP地址的实例代码,分享给大家,自己也留个笔记 1.js方法 <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>Document</title> <script src="http://pv.sohu.com/cityjson?ie=utf-8"></scr

  • Java获取电脑真实IP地址的示例代码

    /** * @author yins * @date 2018年8月12日下午9:53:58 */ import java.net.Inet4Address; import java.net.InetAddress; import java.net.NetworkInterface; import java.net.SocketException; import java.util.Enumeration; /** * 获取本地真正的IP地址,即获得有线或者无线WiFi地址. * 过滤虚拟机.蓝

  • python获取linux和windows系统指定接口的IP地址的步骤及代码

    实验目的: 用户输入网卡名称,通过函数返回对应的IPv4和IPv6地址. 实验代码: 步骤一: 由于window系统下网卡名称并不是真正的名字,而真正的ID在注册表SYSTEM\CurrentControlSet\Control\Network{4d36e972-e325-11ce-bfc1-08002be10318}目录下.所以需要通过如下代码,返回接口名称和唯一ID的对应关系. win_ifname.py: import netifaces as ni # import winreg as

  • 网管成长历程——IP地址规划之分配篇2

    4.代理服务器分配 NAT地址转换方式虽然好,但也有其自身的缺陷.简单地说,就是只能简单地进行IP地址转换,而无法实现文件缓存,从而降低了Internet访问流量,无法实现快速的Internet访问. 代理服务器与NAT的工作原理不太一样,它并不只是简单地做地址转换,而是代理网络内的计算机访问Internet,并把访问的结果返回给当初提出该请求的用户,同时,把访问的结果保存在缓存中.当网络用户发出下一Internet请求时,服务器将首先检查缓存中是否保存有该页面的内容,如果有,立即从缓存中调出并

  • 网管成长历程——IP地址规划之分配篇1

    在IP地址规划时,我们已经知道IP地址包括公网和专用(私有)两种类型,公网IP地址又称为可全局路由的IP地址,是在Internet中使用的IP地址,目前对企业来说主要是ISP提供的一个或几个C类地址:而专用(私有)IP地址则包括A.B和C类三种,另外就是Microsoft Windows的APIPA预留的(169.254.0.0 -- 169.254.255.255)网段地址:下面就和大家谈谈这些IP地址的在企业局域网的分配方式. 一.可全局路由(公网)的IP地址的分配方式 毫无疑问,Inter

  • 安卓 获取手机IP地址的实现代码

    1.获取手机IP地址的代码: public static String getLocalIpAddress(){ try{ for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) { NetworkInterface intf = en.nextElement(); for (Enumeration<InetAddress> enu

  • 自动修改本机IP地址的bat代码

    代码比较多,经过我们小编测试,在2008 r2上无法正常执行,其实bat设置ip就是几个命令,无外乎加了一些判断与获取原来网络配置的一些信息,代码越复杂越容易出问题 @echo off setlocal enabledelayedexpansion title 修改本机IP地址 by:小小沧海20130409 :init cls&echo --------------自动修改本机IP地址-------------- rem 系统版本,值可为Windows7或是WindowsXP,或是auto(表

随机推荐