疲劳是最舒适的枕头,努力工作吧。

GeoIP解析IP地理位置

ziyou 发表了文章 • 0 个评论 • 9572 次浏览 • 2019-12-20 10:09 • 来自相关话题


我们在对IP进行解析的时候使用maxmind提供的提供的GeoLite2,这个是maxmind提供的GeoIP2的免费版本,其准确率稍低于付费版本,可以很好的对IP进行地域解析,可以满足我们的需求。
          GeoLite2有提供各种版本的API供开发者使用,我们就主要是用的是java版本的API。具体步骤如下:1、下载maxmind DB数据库

在maxmind官网下载需要的IP解析数据库,里面有两种数据库,一是国家数据库,一是城市数据库,我们使用的基本都是城市数据库,下载选择二进制格式。网页地址:GeoLite2 开源数据库

2、安装软件包,建议使用maven安装此软件包,将以下依赖添加到pom.xml中。
<dependency>
<groupId> com.maxmind.geoip2 </groupId >
<artifactId > geoip2 </artifactId >
<version >2.12.0</version >
</dependency >
3、使用
// A File object pointing to your GeoIP2 or GeoLite2 database
System.out.println(GeoIP2Test.class.getClassLoader().getResource("GeoLite2-City.mmdb").toString().replaceFirst("/",""));
File database = new File(GeoIP2Test.class.getClassLoader().getResource("GeoLite2-City.mmdb").toString().replaceFirst("file:/",""));

// This creates the DatabaseReader object. To improve performance, reuse
// the object across lookups. The object is thread-safe.
DatabaseReader reader = new DatabaseReader.Builder(database).build();


InetAddress ipAddress = InetAddress.getByName("128.101.101.101");

// Replace "city" with the appropriate method for your database, e.g.,
// "country".
CityResponse response = reader.city(ipAddress);
Country country = response.getCountry();
System.out.println(country.getIsoCode()); // 'US'
System.out.println(country.getName()); // 'United States'
System.out.println(country.getNames().get("zh-CN")); // '美国'


Subdivision subdivision = response.getMostSpecificSubdivision();
System.out.println(subdivision.getName()); // 'Minnesota'
System.out.println(subdivision.getIsoCode()); // 'MN'


City city = response.getCity();
System.out.println(city.getName()); // 'Minneapolis'


Postal postal = response.getPostal();
System.out.println(postal.getCode()); // '55455'


Location location = response.getLocation();
System.out.println(location.getLatitude()); // 44.9733
System.out.println(location.getLongitude()); // -93.2323

被子太轻,压不住想你的心~

Charele 回复了问题 • 2 人关注 • 1 个回复 • 2769 次浏览 • 2019-12-20 12:26 • 来自相关话题

liogstash启动报错不能写入es,角色和用户配置都正确

artcode 回复了问题 • 3 人关注 • 3 个回复 • 6066 次浏览 • 2019-12-19 11:43 • 来自相关话题

logstash写入es报错400

locatelli 回复了问题 • 2 人关注 • 1 个回复 • 3921 次浏览 • 2019-12-18 08:20 • 来自相关话题

logstash xml 無法解析

Dm 回复了问题 • 2 人关注 • 1 个回复 • 1273 次浏览 • 2019-12-19 10:17 • 来自相关话题

logstash能不能动态的生成es的索引模板啊

tacsklet 回复了问题 • 2 人关注 • 1 个回复 • 2044 次浏览 • 2019-12-16 16:19 • 来自相关话题

logstash消费kafka中gz压缩的数据

locatelli 回复了问题 • 3 人关注 • 1 个回复 • 2870 次浏览 • 2019-12-16 06:10 • 来自相关话题

Index pattern 去重问题

回复

MihaiWong 发起了问题 • 1 人关注 • 0 个回复 • 1562 次浏览 • 2019-12-14 11:24 • 来自相关话题

logstash 运行一段时间后,自动停掉,但进程还在,不在读取数据发送给es

回复

sunbiqiang 发起了问题 • 2 人关注 • 0 个回复 • 2261 次浏览 • 2019-12-12 19:00 • 来自相关话题

用户logstash同步mysql数据到es中7.4.1版本以后输出的sql日志中没有分页信息

GLC 回复了问题 • 2 人关注 • 1 个回复 • 2059 次浏览 • 2020-04-23 16:29 • 来自相关话题

logstash收集思科交换机日志

Dm 回复了问题 • 2 人关注 • 1 个回复 • 3335 次浏览 • 2019-12-10 14:18 • 来自相关话题

logstash同步mysql和sqlserver至es没反应

回复

sist 发起了问题 • 1 人关注 • 0 个回复 • 2252 次浏览 • 2019-11-28 10:34 • 来自相关话题

logstash grok 匹配

micmouse521 回复了问题 • 2 人关注 • 1 个回复 • 1724 次浏览 • 2019-11-28 17:15 • 来自相关话题

logstash性能调优

micmouse521 回复了问题 • 2 人关注 • 1 个回复 • 4015 次浏览 • 2019-11-28 17:09 • 来自相关话题

RedHat 6.5 操作系统,Logstash7.3.1 启动报错,NameError,Cannot Load OpenSSL

zhangqiang8906 回复了问题 • 4 人关注 • 3 个回复 • 4910 次浏览 • 2020-03-23 08:51 • 来自相关话题