nodejs如何获取当前连接的网络ip

 更新时间:2023年10月11日 10:51:02   作者:慕水渔  
这篇文章主要介绍了nodejs如何获取当前连接的网络ip问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

nodejs获取当前连接的网络ip

获取当前连接ip的方法:

import net from 'net';
function getNetworkIP() {
    return new Promise((resolve,reject)=>{
        let createConnection = net.createConnection;
        var socket = createConnection(80, 'www.***.cn);//进行socket 连接的地址
        socket.on('connect', function() {
            resolve(socket.address().address);
            socket.end();
            socket.destroy();
        });
        socket.on('error', function(e) {
            resolve('');
        });
    })
}

如果想要获取详细信息,可以使用node提供的api或第三方插件获取当前网关列表,然后比对当前连接的ip。

我这里使用systeminformation进行获取:

import si from 'systeminformation';
function getNetwork(){
    return new Promise(async (resolve, reject) => {
        let ip = await getNetworkIP();
        si.networkInterfaces().then(data => {
            data.map((val)=>{
                if(val.ip4==ip){
                    resolve(val);
                }
            })
        }).catch(error => {
            reject();
        });
    })
}

node.js获取用户IP地址

// 获取客户端ip地址
app.get('/ip', function (req, res) {
? var clientIp = getIp(req)
? console.log('客户端ip',clientIp)
? res.json({'youIp':clientIp});
})
//通过req的hearers来获取客户端ip
var getIp = function(req) {
? var ip = req.headers['x-real-ip'] || req.headers['x-forwarded-for'] || req.connection.remoteAddres || req.socket.remoteAddress || '';
? if(ip.split(',').length>0){
? ? ip = ip.split(',')[0];
? }
? return ip;
};

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • express框架+bootstrap美化ejs模板实例分析

    express框架+bootstrap美化ejs模板实例分析

    这篇文章主要介绍了express框架+bootstrap美化ejs模板,结合实例形式分析了express框架引入bootstrap结合ejs模版引擎相关操作技巧与注意事项,需要的朋友可以参考下
    2023-05-05
  • NodeJS配置CORS实现过程详解

    NodeJS配置CORS实现过程详解

    这篇文章主要介绍了NodeJS配置CORS实现过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-12-12
  • Thinkjs3新手入门之添加一个新的页面

    Thinkjs3新手入门之添加一个新的页面

    Thinkjs 是一个快速、简单的基于MVC和面向对象的轻量级Node.js开发框架,下面这篇文章主要给大家介绍了关于Thinkjs3新手入门之添加一个新的页面的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下。
    2017-12-12
  • nodejs+mongodb aggregate级联查询操作示例

    nodejs+mongodb aggregate级联查询操作示例

    这篇文章主要介绍了nodejs+mongodb aggregate级联查询操作,结合实例形式分析了基于nodejs的mongodb数据库级联查询相关操作技巧,需要的朋友可以参考下
    2018-03-03
  • NodeJS连接MongoDB数据库时报错的快速解决方法

    NodeJS连接MongoDB数据库时报错的快速解决方法

    下面小编就为大家带来一篇NodeJS连接MongoDB数据库时报错的快速解决方法。小编觉得挺不错的,现在分享给大家,也给大家做个参考
    2016-05-05
  • node NPM库qs iconv-lite字符串编码转换及解析URL查询学习

    node NPM库qs iconv-lite字符串编码转换及解析URL查询学习

    这篇文章主要为大家介绍了node NPM库之qs解析URL查询字符串及iconv-lite字符串编码转换学习,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • 如何用node优雅地打印全链路日志

    如何用node优雅地打印全链路日志

    这篇文章主要给大家介绍了关于如何用node优雅地打印全链路日志的相关资料,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-03-03
  • 完美解决linux下node.js全局模块找不到的情况

    完美解决linux下node.js全局模块找不到的情况

    今天小编就为大家分享一篇完美解决linux下node.js全局模块找不到的情况,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • mocha的时序规则讲解

    mocha的时序规则讲解

    今天小编就为大家分享一篇关于mocha的时序规则讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • Express + Node.js实现登录拦截器的实例代码

    Express + Node.js实现登录拦截器的实例代码

    本篇文章主要介绍了Express + Node.js实现拦截器的实例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07

最新评论