欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

通过IP来获取访问者的地理位置

程序员文章站 2024-02-09 16:41:16
...

这里使用ip2region来识别ip

首先得下载IP库 ip2region.db

        下载链接:https://gitee.com/lionsoul/ip2region/tree/master/data

其次是引入maven依赖(版本1.7;     版本1.4有问题)

          

<dependency>
    <groupId>org.lionsoul</groupId>
    <artifactId>ip2region</artifactId>
    <version>1.7</version>
</dependency>

具体代码实现

public class Ip2RegionTest {
    public static void main(String[] args){
           //ip
           String ip="172.16.11.144";

           // 判断是否为IP地址
           boolean isIpAddress = Util.isIpAddress(ip); 

           //ip和long互转
           long ipLong = Util.ip2long(ip); 
           String strIp = Util.long2ip(ipLong);

           //根据ip进行位置信息搜索
           DbConfig config = new DbConfig();

           //获取ip库的位置(放在src下)(直接通过测试类获取文件Ip2RegionTest为测试类)
           String dbfile = Ip2RegionTest.class.getResource("/ip2region.db").getPath();

           DbSearcher searcher = new DbSearcher(config, dbfile);

           //采用Btree搜索
           DataBlock block = searcher.btreeSearch(ip);

           //打印位置信息(格式:国家|大区|省份|城市|运营商)
           System.out.println(block.getRegion()); 
            
           //进行截取
           block.getRegion().split("\\|");
    }
}



 

相关标签: i