本文主要演示怎么根据IP地址定位国家,城市,经度纬度。

1.GeoLite数据库

MaxMind提供一个GeoLite的数据库(包含IP地址和位置信息)。

先下载一个GeoLite的免费数据库--下载

使用GeoIP的Java AIP获取位置信息--查看

开始编码。

2.GeoLite例子

我们演示如何使用GeoIP的客户端,查询IP地址的位置信息。

package com.qiyadeng.core;

import java.io.File;

import java.net.InetAddress;

import com.maxmind.geoip2.DatabaseReader;

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.Postal;

import com.maxmind.geoip2.record.Subdivision;

public class GeoIpExample {

public static void main(String[] args) throws Exception{

// A File object pointing to your GeoIP2 or GeoLite2 database

File database = new File("c://temp//GeoLite2-City.mmdb");

// This creates the DatabaseReader object, which should be reused across

// lookups.

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

}

}

输出结果如下:

US

United States

美国

Minnesota

MN

Minneapolis

55414

44.9759

-93.2166

java ip地址定位,Java根据IP地址定位位置相关推荐

  1. IP地址库解析——读取IP地址获得实际地理位置信息的java源码实现

    说明:IP地址库来自QQwry.dat数据库文件,通过解析地址库当中的ip,已经细化最后获取的信息:获取ip地址对应的:国家 / 省 / 市 / 运营商ISP信息. 解析主要用到三个类: (1) IP ...

  2. java如何获得内网ip、外网ip、以及如何根据ip查询地址

    今天突发奇想地想要用java写一个小的工具类. 用来实现如何获得本机的内网ip,外网ip和根据ip获得相应的地址. 花了几个小时才弄清,然后整理了一下,希望有用. 首先要明白以下三种ip地址的区别: ...

  3. java转换ip地址格式转换_Java编程IP地址和数字相互转换代码示例

    最近才知道,将ip地址转换成十进制.八进制.十六进制同样可以访问网站. IP转为数字(第二种算法.用左移.按位或实现.效率更高.): public long ipToLong(String ipAdd ...

  4. ip的正则表达式 java,项目实战:Java正则表达式验证IP地址

    IP 地址是网络上每台计算机的唯一标识,因此 IP 地址的错误输入将使程序无法运行.下面使用前面学习的正则表达式知识,编写一个 Java 程序来验证 IP 地址是否合法. 在定义正则表达式之前,首先要 ...

  5. java怎么通过ip地址查具体地址_制作通过IP 查询地址的java版程序

    package test; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedSta ...

  6. Java 利用InetAddress类确定特殊Ip地址

    IP地址分为普通地址和特殊地址.在前面的文章中所使用的大多数都是普通的IP地址,在本文中将介绍如何利用InetAddress类提供的十个方法来确定一个IP地址是否是一个特殊的IP地址. 一.isAny ...

  7. Java技巧: 根据网址查询DNS/IP地址

    需求: 给定一个URL地址, 例如: http://www.cncounter.com/tools/shorturl.php, 解析对应的IP地址和端口号. 说明: 本文不涉及底层的 DNS 协议, ...

  8. Java获取请求客户端的真实IP地址

    整理网友的材料,最后有源码,亲测能解决所有java获取IP真实地址的问题 整理的这里: 1.链接1 2.链接2 JSP里,获取客户端的IP地址的方法是: request.getRemoteAddr() ...

  9. java正则匹配ip_正则表达式 - 匹配 IP 地址

    17220161221160719 IP地址是指互联网协议地址(英语:Internet Protocol Address,又译为网际协议地址),是IP Address的缩写.IP地址是IP协议提供的一 ...

  10. java判断内网ip_Java判断IP地址为内网IP还是公网IP的方法

    本文实例讲述了Java判断IP地址为内网IP还是公网IP的方法.分享给大家供大家参考.具体分析如下: tcp/ip协议中,专门保留了三个IP地址区域作为私有地址,其地址范围如下: 10.0.0.0/8 ...

最新文章

  1. pycharm运行出现ImportError:No module named
  2. 生产环境可以用吗_小型熔喷布设备可以生产出好的熔喷布吗?
  3. ie7ajax 跨域 no transport 解决办法
  4. ubuntu20.04屏幕闪烁与分辨率的问题
  5. SQLite移植手记1
  6. 作者:周晓津(1971-),男,博士,广州市社会科学院研究员。
  7. Jmeter函数助手
  8. 系统不做限流,我看你是对中国人口数量有什么误解
  9. php伪随机数 ctf,[GWCTF 2019]枯燥的抽奖
  10. mac os android 线刷,Mac系统下使用Fastboot线刷安卓设备
  11. 为知笔记的markdown图片处理
  12. xkcd目录_使用随机XKCD漫画作为您的桌面墙纸
  13. 拒退10万保证金 哈啰杨磊被限制消费 公司回应正在申请解除
  14. 【YOLO】YOLO简介
  15. Linux在虚拟机里大小写键不停闪动是因为虚拟机内外的大小写不同导致,将虚拟机内外的大小写切换一致即可解决
  16. 媒体:中国大学不应培养“精致的利己主义者”
  17. 关于720全景视频在移动端播放的兼容问题汇总,截止2017年11月29日
  18. hackthebox-shock(考点:shellshock perl提权)
  19. 信息学奥赛之初赛 第1轮 讲解(01-08课)
  20. QT学习——Qt工具介绍,Qt助手使用,第一个Qt程序,Qt字符串和字符编码

热门文章

  1. ROS与Arduino:ros_arduino_bridge功能包的使用解读
  2. DevExpress去除多国语言包
  3. 关于vivo手机调试安装“解析程序包时出现问题”的解决方案
  4. 常用的oracle数据库备份方式
  5. pointnet源码阅读:数据预处理
  6. 32*32的booth算法的乘法器
  7. 魔兽怀旧服最新服务器人口,魔兽世界怀旧服人口普查2020年最新 最新11月怀旧服人口普查数据大全_蚕豆网新闻...
  8. 武汉工程大学计算机学院吴云韬,周华兵-武汉工程大学计算机科学与工程学院...
  9. ThinkPad E450 10.11 驱动HD4400的注意即解决方法
  10. deepin驱动精灵_Deepin 15.4.1 X64官方正式版(64位)