手把手教你用Java获取IP归属地

本文详细介绍了如何在Java中获取IP地址,并解决Nginx反向代理问题,以及通过API和本地库获取IP归属地,最后展示了在小程序中应用的效果。
摘要由CSDN通过智能技术生成

前几个月微信公众号上线了 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
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值