0


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

1.主要使用场景

  1. 查看操作记录等

2.实现原理

  1. 在前端的 Vue.js 应用中,通常是无法直接获取到当前电脑的局域网 IP 地址的,因为浏览器限制了这类敏感信息的访问。局域网 IP 地址是客户端(浏览器)到服务器端(通常是后端)的连接信息,而不是直接从浏览器获取的。
  2. 一般情况下,你可能需要通过后端接口来获取客户端的 IP 地址。在 Vue.js 中,可以通过向后端发送请求来获取客户端的 IP 地址。后端可以通过读取请求的 IP 地址头部来获取客户端的真实 IP

3.代码

3.1前端增加登录记录代码示例
  1. 向后端发送除IP外的其他需要记录的数据
  1. //添加登陆记录
  2. insertLoginLog() {
  3. this.logForm.loginTime=this.getCurrentTime();
  4. this.logForm.empcode=this.loginForm.loginName
  5. console.log(this.logForm)
  6. insertLoginLog(this.logForm)
  7. .then((res) => {
  8. if (res.data.code === 200) {
  9. this.$message({
  10. message: "登录成功",
  11. type: "success",
  12. });
  13. } else {
  14. this.$message.error(res.data.message);
  15. }
  16. })
  17. .catch((err) => {
  18. this.$message.error("添加登录记录异常");
  19. console.log(err);
  20. });
  21. },
3.2后端增加登录记录示例
  1. 后端接收请求并获取请求发送的IP地址
  1. /**
  2. * 新增登陆记录
  3. * @param
  4. * @return
  5. */
  6. @PostMapping("/api/user/insertLoginLog")
  7. public Result insertLoginLog(@RequestBody LoginNumber loginNumber,
  8. HttpServletRequest request,
  9. @RequestHeader(value = "X-Forwarded-For", required = false) String clientIp){
  10. if (clientIp == null) {
  11. clientIp = request.getRemoteAddr(); // 获取默认的客户端 IP 地址
  12. }
  13. loginNumber.setLoginIP(clientIp);
  14. return new Result(200,"",userService.insertLoginLog(loginNumber));
  15. }

本文转载自: https://blog.csdn.net/qq_55946937/article/details/140502309
版权归原作者 浮休383 所有, 如有侵权,请联系我们删除。

“获取客户端(前端)IP地址”的评论:

还没有评论