Ip2Region有中文和数据结构支持,是一个很好的第三方ip转换工具。

java:

<dependency>
<groupId>org.lionsoul</groupId>
<artifactId>ip2region</artifactId>
<version>1.7</version>
</dependency>
import org.lionsoul.ip2region.DataBlock;
import org.lionsoul.ip2region.DbConfig;
import org.lionsoul.ip2region.DbSearcher; public class Ip2Region {
public static void main(String[] args) throws Exception {
// ip
String ip = "121.33.59.18"; // 判断是否为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 = Ip2Region.class.getResource("/ip2region.db").getPath(); //获取src/java/resources路径下ip2region.db文件地址 DbSearcher searcher = new DbSearcher(config, dbfile); // 采用Btree搜索
DataBlock block = searcher.btreeSearch(ip); // 打印位置信息(格式:国家|大区|省份|城市|运营商)
System.out.println(block.getRegion());
} }

scala:

<dependency>
<groupId>org.lionsoul</groupId>
<artifactId>ip2region</artifactId>
<version>1.7</version>
</dependency>
import org.junit.Test
import org.lionsoul.ip2region.{DataBlock, DbConfig, DbSearcher} class IPTest { /**
* IP -> Region, City
*/
@Test
def ip2Region(): Unit = {
val searcher = new DbSearcher(new DbConfig(), "dataset/ip2region.db")
val region = searcher.btreeSearch("121.33.59.18").getRegion
println(region)
} }

地址:https://pan.baidu.com/s/13W7EFg-GiBVkMjNdl-a5RA

密码:0wi6

或:https://gitee.com/lionsoul/ip2region/tree/master/data

最新文章

  1. Linux系统sar命令解析
  2. edgesForExtendedLayout,automaticallyAdjustsScrollViewInsets, extendedLayoutIncludesOpaqueBars的影响
  3. mysql锁机制总结
  4. JAVA 集合List、Map、Set
  5. hdu 1012:u Calculate e(数学题,水题)
  6. androidStudio中如何加载字体资源?
  7. json对象,使用 “ . ”获取值是,不能使用变量作为属性名。
  8. O-C相关-06:对象与对象的关系
  9. 【原创】Linux 增加系统调用
  10. socket编程原理
  11. LDMFD和STMFD个人理解
  12. AIX下解决POWERHA的脑裂问题
  13. Project Euler #80: Square root digital expansion
  14. EasyUI - DataGrid 组建 - [ 组件加载和分页 ]
  15. Windows10 下安装 Apache2.4+PHP7.1+MySQL5.7
  16. Oracle中 (+)与left join 的用法区别
  17. tidb 架构 ~Tidb学习系列(4)
  18. LOJ1070(SummerTrainingDay05-B 矩阵快速幂)
  19. 测试开发之Django——No1.介绍以及引申
  20. sqlmap利用DNS进行oob(out of band)注入(转)

热门文章

  1. moveTo 与 moveBy的区别 (转贴)
  2. Winfrom控件 特效
  3. 在MyEclipse中修改文件名出现问题
  4. django 搭建一个投票类网站(一)
  5. jmeter 登陆--查询存在否--&gt;新建客户--&gt;查询存在否 + 压测
  6. java基础之 控制语句
  7. C语言随笔1:内存分配方式与动静态变量
  8. 在Linux系统上安装Git
  9. django 400报错
  10. Codeforces Round #619 (Div. 2)C(构造,容斥)