Java通过IP获取用户所在城市信息

http://47.98.236.213:9081/ip/58.250.250.254 http://47.98.236.213:9081/ip?ip=58.250.250.254 需要的可以测试 所需文件在下面链接下载 https://github.com/lionsoul2014/ip2region

<!-- ip to region -->
        <dependency>
            <groupId>org.lionsoul</groupId>
            <artifactId>ip2region</artifactId>
            <version>2.6.4</version>
        </dependency>
package com.hero.calculate;

import org.lionsoul.ip2region.xdb.Searcher;
import org.springframework.core.io.ClassPathResource;

import java.io.IOException;
/**
* IpUtil.java
* @author YangMingKang
* 2022/9/1 16:58
*/
public class IpUtil {
          
   

    public static String getIp(String ip) {
          
   
        String ipAdder = "";
        // 这个才可以在服务器上访问到
        ClassPathResource classPathResource = new ClassPathResource("/ip2region.xdb");
        Searcher searcher = null;
        try {
          
   
            searcher = Searcher.newWithFileOnly(classPathResource.getPath());
        } catch (IOException e) {
          
   
            e.printStackTrace();
        }
        // 3、查询
        try {
          
   
            assert searcher != null;
            String region = searcher.search(ip);
            String[] numberArray = region.split("\|");
            String s = numberArray[0];
            String s1 = numberArray[2];
            String s2 = numberArray[3];
            String s3 = numberArray[4];
            ipAdder = s + s1 + s2 + s3;
        } catch (Exception e) {
          
   
            System.out.printf("failed to search(%s): %s
", ip, e);
        }
        return ipAdder;
    }

}
经验分享 程序员 微信小程序 职场和发展