前几个月微信公众号上线了 IP归属地
的功能,后续知乎、抖音等平台纷纷添加了该功能。如果是国内的用户精确到省份,国外用户精确到国家。本文就使用 Java
实现获取 IP归属地
。
!
主要讲解几个步骤:
Java
获取请求IP
- 解决
Nginx
转发问题 - 通过
IP
地址获取归属地
获取IP地址
首先使用基于 Spring Boot
搭建项目,在 controller
添加 HttpServletRequest
请求参数:
@RestController public class IpController { @GetMapping("/ip-address") public String ipAddress(HttpServletRequest request) { // 接收request } }
通过 HttpServletRequest
获取 IP地址
:
String ip = request.getHeader("x-forwarded-for"); if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("Proxy-Client-IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("WL-Proxy-Client-IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeade