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

浮休383 2024-09-15 12:03:01 阅读 69

1.主要使用场景

        查看操作记录等

2.实现原理

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

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

3.代码

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

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

<code> //添加登陆记录

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

}



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。