Java ip地址轉爲中文 geoip本地地址數據庫

一、簡單介紹

geoip2是maxmind的產品,有免費的版本,我這裏使用免費的版本做爲演示。

二、資源信息

注意:因爲jar包資源版本之間存在差異,可以的話按照我的jar包版本來選擇。
1.jar包
使用geoip需要的jar包
2.本地數據庫文件
在這裏插入圖片描述

三、使用

首先需要到maxmind的官網下載數據庫資源 maxmind數據庫資源下載,可能出現網絡原因鏈接打不開,文章最後我會直接提供所有資源和示例代碼。
maxmind官網
我們要ip要精準到城市的話,選擇City欄目,這裏我已經選好了。
點擊免費版本鏈接
免費版本鏈接
進入免費版本連接後,maxmind會要求用戶進行賬號註冊,註冊完會提供ip地址庫資源與它所支持開發語言的api資源

Jackson的jar包資源直接上 maven倉庫 搜索對應版本即可。

導入jar包到工程後可以按我這個簡單編碼進行查詢下地址信息,邏輯處理按自己的需求來就大功告成了。
注意:修改包名和類名爲你們自己的

package com.porty;

import java.io.File;
import java.io.IOException;
import java.net.InetAddress;

import com.maxmind.geoip2.DatabaseReader;
import com.maxmind.geoip2.exception.GeoIp2Exception;
import com.maxmind.geoip2.model.CityResponse;
import com.maxmind.geoip2.record.City;
import com.maxmind.geoip2.record.Country;
import com.maxmind.geoip2.record.Location;
import com.maxmind.geoip2.record.Subdivision;

public class Demo {
	public static void main(String[] args) throws IOException, GeoIp2Exception {
		// 獲取GeoIP2-City 數據庫文件
		File database = new File("E:/GeoLite2-City.mmdb");

		// 創建 DatabaseReader對象
		DatabaseReader databaseReader = new DatabaseReader.Builder(database).build();
		
		// 通過ip地址獲取地址對象
		InetAddress ipAddress = InetAddress.getByName("116.22.31.159");

		// 查詢結果
		CityResponse cityResponse = databaseReader.city(ipAddress);

		// 國家信息
		Country country = cityResponse.getCountry();
		// 如果只是getNames() 結果爲:{de=Taiwan, ru=Тайвань, pt-BR=Taiwan, ja=臺灣, en=Taiwan, fr=Ta?wan, zh-CN=臺灣, es=Taiwán}
		// 這裏我們獲取語言爲簡體中文的zh-CN得到的就是我們想要的。
		System.out.println("國家:" + country.getNames().get("zh-CN"));

		// 省份
		Subdivision subdivision = cityResponse.getMostSpecificSubdivision();
		System.out.println("省份:" + subdivision.getNames().get("zh-CN"));
		
		// 城市
		City city = cityResponse.getCity();
		System.out.println("城市:" + city.getName());

		// 經緯度
		Location location = cityResponse.getLocation();
		System.out.println("經度:" + location.getLatitude());
		System.out.println("維度:" + location.getLongitude());
	}
}

運行後輸出:
在這裏插入圖片描述

四、直接一套帶走!!!

本地數據庫文件和jar包資源,百度網盤鏈接:

鏈接:https://pan.baidu.com/s/1ANxq1ltrznYc1sY5-kIJyw
提取碼:2ep7

各位看官老爺,如要幫到忙請給小弟個贊贊贊,萬分感謝。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章