获取客户端(前端)IP地址

1.主要使用场景

查看操作记录等

2.实现原理

在前端的 Vue.js 应用中,通常是无法直接获取到当前电脑的局域网 IP 地址的,因为浏览器限制了这类敏感信息的访问。局域网 IP 地址是客户端(浏览器)到服务器端(通常是后端)的连接信息,而不是直接从浏览器获取的。

一般情况下,你可能需要通过后端接口来获取客户端的 IP 地址。在 Vue.js 中,可以通过向后端发送请求来获取客户端的 IP 地址。后端可以通过读取请求的 IP 地址头部来获取客户端的真实 IP。

3.代码

3.1前端增加登录记录代码示例

向后端发送除IP外的其他需要记录的数据

复制代码
    //添加登陆记录
    insertLoginLog() {
      this.logForm.loginTime=this.getCurrentTime();
      this.logForm.empcode=this.loginForm.loginName
      console.log(this.logForm)
      insertLoginLog(this.logForm)
        .then((res) => {
          if (res.data.code === 200) {
            this.$message({
              message: "登录成功",
              type: "success",
            });
          } else {
            this.$message.error(res.data.message);
          }
        })
        .catch((err) => {
          this.$message.error("添加登录记录异常");
          console.log(err);
        });
    },
3.2后端增加登录记录示例

后端接收请求并获取请求发送的IP地址

复制代码
    /**
     * 新增登陆记录
     * @param
     * @return
     */
    @PostMapping("/api/user/insertLoginLog")
    public Result insertLoginLog(@RequestBody LoginNumber loginNumber,
                                 HttpServletRequest request,
                                 @RequestHeader(value = "X-Forwarded-For", required = false) String clientIp){
        if (clientIp == null) {
            clientIp = request.getRemoteAddr(); // 获取默认的客户端 IP 地址
        }
        loginNumber.setLoginIP(clientIp);
        return new Result(200,"",userService.insertLoginLog(loginNumber));
    }
相关推荐
我就是不信24 分钟前
TCP 原理详解:从三次握手到拥塞控制
网络·网络协议·tcp/ip
木白CPP28 分钟前
USB(一): USB 概述&&介绍
linux·网络·嵌入式硬件
可乐鸡翅yeah_37 分钟前
AES‑128 加密 M3U8,IV 初始化向量新手容易踩坑
前端·网络·数据库·ffmpeg·音视频·m3u8在线
HEJOO91 小时前
指针与结构体:C 语言进阶核心详解
c语言·开发语言·网络
en.en..1 小时前
IO 多路复用:select、poll、epoll 核心函数解析
网络
我就是不信1 小时前
TCP/IP 网络编程:从入门到实战
网络·网络协议·tcp/ip
沫璃染墨2 小时前
《Qt从零入门系列(十二):Qt文件操作详解——从QFile读写到QFileInfo与记事本实战》
开发语言·网络·c++·qt·交互·信号处理·文件
梦帮科技3 小时前
推测解码(Speculative Decoding)与 Draft-Target 双核协同:接受率判据、树状验证与两倍吞吐无损加速
网络·人工智能·深度学习·神经网络·线性代数·矩阵·架构
骑着蜗牛撵大象3273 小时前
Agent 打字机是怎么来的:SSE 与 WebSocket 打通实时响应与中间状态
网络·websocket·网络协议·agent·sse·实时通信·流式输出
Frank_refuel3 小时前
分布式RPC框架实战(二):服务端模块划分与底层设计
分布式·网络协议·rpc