一、实现目的
在解析网络访问日志的时候,ip是不可避免地分析KPI。而有时候需要把访问ip直接转换为对应城市,这样如果自己编写程序,就会浪费很多时间,在此介绍一个有效地开源github项目,可以实现ip到城市的映射。
二、实现步骤
1.使用github上已有的开源项目,从github上下载
git clone [email protected]:wzhe06/ipdatabase.git
2.编译下载的项目
使用cmd命令,进入项目根目录,使用maven编译
mvn clean package -DskipTests
结果:
获得编译好的jar包,jar包位置ipdatabase-1.0-SNAPSHOT.jar:
ipdatabase\target\ipdatabase-1.0-SNAPSHOT.jar
3.因为项目使用maven管理,所以安装jar包到自己的maven仓库
使用Windows自带的powershell打开
mvn install:install-file -Dfile="E:\Tools\ipdatabase\target\ipdatabase-1.0-SNAPSHOT.jar" '-DgroupId=com.ggstar' '-DartifactId=ipdatabase' '-Dversion=1.0' '-Dpackaging=jar'
结果:
[INFO] --- maven-install-plugin:2.4:install-file (default-cli) @ ipdatabase ---
[INFO] Installing E:\Tools\ipdatabase\target\ipdatabase-1.0-SNAPSHOT.jar to E:\Tools\apache-maven-3.3.9\Repository\com\ggstar\ipdatabase\1.0\ipdatabase-1.0.jar
jar包安装的目的地
E:\Tools\apache-maven-3.3.9\Repository\com\ggstar\ipdatabase\1.0
4.pom文件中添加
(1)添加手动增加包的依赖
<dependency>
<groupId>com.ggstar</groupId>
<artifactId>ipdatabase</artifactId>
<version>1.0</version>
</dependency>
(2)增加额外依赖
<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>
5.添加辅助excel文件
将源码下的:ipdatabase\src\main\resources的两个文件(ipDatabase.csv和ipRegion.xlsx)拷贝到项目resources下面,必做,否则会报错!
三、测试
1.测试代码
package SQLproject
import com.ggstar.util.ip.IpHelper
/**
* Ip解析工具类
*/
object IpUtils {
def getCity(ip :String) ={
IpHelper.findRegionByIp(ip) //58.30.15.255
}
def main(args: Array[String]): Unit = {
println(getCity("58.30.15.255"))
}
}
2.测试结果成功~