Nodejs 获取本机IP地址

博客围绕Nodejs展开,介绍了获取本地IP和外网IP的方法,同时提及了require版本和ES6版本的相关内容,聚焦于信息技术中利用Nodejs进行IP地址获取的知识。
部署运行你感兴趣的模型镜像

获取本地IP

function getLocalIP() {
    const os = require('os');
    const osType = os.type(); //系统类型
    const netInfo = os.networkInterfaces(); //网络信息
    let ip = '';
    if (osType === 'Windows_NT') { 
        for (let dev in netInfo) {
        	//win7的网络信息中显示为本地连接,win10显示为以太网
            if (dev === '本地连接' || dev === '以太网') {
                for (let j = 0; j < netInfo[dev].length; j++) {
                    if (netInfo[dev][j].family === 'IPv4') {
                        ip = netInfo[dev][j].address;
                        break;
                    }
                }
            }
        }

    } else if (osType === 'Linux') {
        ip = netInfo.eth0[0].address;
    } else if (osType === 'Darwin') {
    	// mac操作系统
    	// ip = netInfo.eth0[0].address;
    } else {
    	// 其他操作系统
    }

    return ip;
}

获取外网IP

var request = require('request');
var url = 'http://ip.taobao.com/service/getIpInfo.php?ip=myip';
request(url, function(error, response, body) {
    if (!error && response.statusCode == 200) {
        var ip = JSON.parse(body).data.ip;
        console.log(ip);
});

require版本

var http = require('http');

/**
 * 获取本机IP
 * @return {String} 返回本机IP
 */
function getLocalIP() {
    const os = require('os');
    const ifaces = os.networkInterfaces();
    let locatIp = '';
    for (let dev in ifaces) {
        if (dev === '本地连接' || dev === '以太网') {
            for (let j = 0; j < ifaces[dev].length; j++) {
                if (ifaces[dev][j].family === 'IPv4') {
                    locatIp = ifaces[dev][j].address;
                    break;
                }
            }
        }
    }
    return locatIp;
}

/**
 * 获取公网IP
 * @param {Function} fn 异步获取结果后的回调函数
 */
function getPublicIP(fn) {
    http.get('http://ip.taobao.com/service/getIpInfo.php?ip=myip', function(req, res) {
        typeof fn === 'function' && fn(res);
        console.info(res);
    });
}

module.exports = {
    getLocalIP: getLocalIP,
    getPublicIP: getPublicIP
};

ES6版本

import http from 'http';

/**
 * 获取本机IP
 * @return {String} 返回本机IP
 */
export function getLocalIP() {
    const os = require('os');
    const ifaces = os.networkInterfaces();
    let locatIp = '';
    for (let dev in ifaces) {
        if (dev === '本地连接' || dev === '以太网') {
            for (let j = 0; j < ifaces[dev].length; j++) {
                if (ifaces[dev][j].family === 'IPv4') {
                    locatIp = ifaces[dev][j].address;
                    break;
                }
            }
        }
    }
    return locatIp;
}

/**
 * 获取公网IP
 * @param {Function} fn 异步获取结果后的回调函数
 */
export function getPublicIP(fn) {
    http.get('http://ip.taobao.com/service/getIpInfo.php?ip=myip', function(req, res) {
        typeof fn === 'function' && fn(res);
        console.info(res);
    });
}

export default {
    getLocalIP,
    getPublicIP
};

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值