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

目录

 

一、下载ipdatabase项目代码

二、编译ipdatabase

三、安装到maven仓库

四、项目上使用


一、下载ipdatabase项目代码

GitHub地址:https://github.com/wzhe06/ipdatabase

使用git下载(没安装git的可以看一下这篇文章:Git下载、安装与环境配置

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

二、编译ipdatabase

在下载下来项目的路径下输入maven编译命令

mvn clean package -DskipTests 

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

三、安装到maven仓库

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

mvn install:install-file -Dfile=E:\开发相关\java\workspace\ipdatabase\target\ipdatabase-1.0-SNAPSHOT.jar  -DgroupId=com.ggstar -DartifactId=ipdatabase -Dversion=1.0 -Dpackaging=jar

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

四、项目上使用

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

        <!-- 解析IP地址 -->
        <dependency>
            <groupId>com.ggstar</groupId>
            <artifactId>ipdatabase</artifactId>
            <version>1.0</version>
        </dependency>

测试代码

package com.qt.wisdomteaching.datacenter.util

import com.ggstar.util.ip.IpHelper

/**
 * IP解析工具类
 */
object IpUtils {


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

  def main(args: Array[String]) {
    println(getCity("218.75.35.226"))
  }

}

运行报错

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下

运行结果

发布了30 篇原创文章 · 获赞 20 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/YiWangJiuShiXingFu/article/details/101364049