IP地址解析之github中ipdatabase项目的使用

使用gitbub上的ipdatabase项目做IP地址解析得到该IP是什么城市的。

流程:1.下载项目 2.编译 3.添加到maven库中(这里演示的是本地maven库) 4.在idea项目的pom.xml中引入依赖

ipdatabase项目地址

https://github.com/wzhe06/ipdatabase.git

下载

git clone https://github.com/wzhe06/ipdatabase.git

编译

mvn clean package -DskipTests 

编译后生成的jar包在target目录下

将这个jar包安装到自己的maven仓库中

mvn install:install-file -Dfile=F:\mc\SparkSQL\ipdatabase\target\ipdatabase-1.0-SNAPSHOT.jar -DgroupId=com.ggstar -DartifactId=ipdatabase -Dversion=1.0 -Dpackaging=jar

查看本地maven库是否加上了这个要用的jar包

打开IDEA在pom.xml中引入依赖。

代码

package com.sid.com.project

import com.ggstar.util.ip.IpHelper

object IpUtils {
  def getCity(ip:String) ={
    IpHelper.findRegionByIp(ip)
  }

  def main(args: Array[String]): Unit = {
    println(getCity("58.30.15.255"))
  }
}

运行报错

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/poi/openxml4j/exceptions/InvalidFormatException
	at com.ggstar.util.ip.IpHelper.getRegionRelationMap(IpHelper.java:88)
	at com.ggstar.util.ip.IpHelper.getIpRelation(IpHelper.java:58)
	at com.ggstar.util.ip.IpHelper.buildTrain(IpHelper.java:33)
	at com.ggstar.util.ip.IpHelper.<clinit>(IpHelper.java:27)
	at com.sid.com.project.IpUtils$.getCity(IpUtils.scala:7)
	at com.sid.com.project.IpUtils$.main(IpUtils.scala:11)
	at com.sid.com.project.IpUtils.main(IpUtils.scala)
Caused by: java.lang.ClassNotFoundException: org.apache.poi.openxml4j.exceptions.InvalidFormatException
	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	... 7 more

因为少了poi的包,在pom.xml中加上。这两个包在我们从github上下载的ipdatabase源码的pom.xml中能看到,直接复制过来。

<dependency>
      <groupId>org.apache.poi</groupId>
      <artifactId>poi-ooxml</artifactId>
      <version>3.14</version>
    </dependency>

    <dependency>
      <groupId>org.apache.poi</groupId>
      <artifactId>poi</artifactId>
      <version>3.14</version>
    </dependency>

再运行

报错

java.io.FileNotFoundException: file:\F:\maven\apache-maven-3.3.9-bin\repository\com\ggstar\ipdatabase\1.0\ipdatabase-1.0.jar!\ipRegion.xlsx (文件名、目录名或卷标语法不正确。)
	at java.io.FileInputStream.open0(Native Method)
	at java.io.FileInputStream.open(FileInputStream.java:195)
	at java.io.FileInputStream.<init>(FileInputStream.java:138)
	at java.io.FileInputStream.<init>(FileInputStream.java:93)
	at com.ggstar.util.file.PoiUtil.getWorkbook(PoiUtil.java:17)
	at com.ggstar.util.ip.IpHelper.getRegionRelationMap(IpHelper.java:88)
	at com.ggstar.util.ip.IpHelper.getIpRelation(IpHelper.java:58)
	at com.ggstar.util.ip.IpHelper.buildTrain(IpHelper.java:33)
	at com.ggstar.util.ip.IpHelper.<clinit>(IpHelper.java:27)
	at com.sid.com.project.IpUtils$.getCity(IpUtils.scala:7)
	at com.sid.com.project.IpUtils$.main(IpUtils.scala:11)
	at com.sid.com.project.IpUtils.main(IpUtils.scala)
java.lang.NullPointerException
	at com.ggstar.util.ip.IpHelper.getRegionRelationMap(IpHelper.java:90)
	at com.ggstar.util.ip.IpHelper.getIpRelation(IpHelper.java:58)
	at com.ggstar.util.ip.IpHelper.buildTrain(IpHelper.java:33)
	at com.ggstar.util.ip.IpHelper.<clinit>(IpHelper.java:27)
	at com.sid.com.project.IpUtils$.getCity(IpUtils.scala:7)
	at com.sid.com.project.IpUtils$.main(IpUtils.scala:11)
	at com.sid.com.project.IpUtils.main(IpUtils.scala)

找不到ipRegion.xlsx 文件,查看从github上下载的ipdatabase源码,在resources中有两个文件。把这两个文件放到我们项目的resources下

运行结果

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值