java实现根据ip地址获取地理位置的代码分享

前几天想给网站后台加个解析ip所在地理位置的功能,在网上看了一些博客,找了几段程序,但总觉得写的不够简洁,感觉很啰嗦。下面这个程序,感觉还算简洁,于是整理调试了一下,可以用,程序调用了“腾讯ip分享计划”提供的接口,当然也可以改成ip138提供的接口,不过这两个网站返回的字符串格式有些不同,要分别做解析。

public String getAddressByIP()
{
  try
  {
    String strIP = "0.0.0.0";
    URL url = new URL( "http://ip.qq.com/cgi-bin/searchip?searchip1=" + strIP);
    URLConnection conn = url.openConnection();
    BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream(), "GBK"));
    String line = null;
    StringBuffer result = new StringBuffer();
    while((line = reader.readLine()) != null)
    {
      result.append(line);
    }
    reader.close();
    strIP = result.substring(result.indexOf( "该IP所在地为:" ));
    strIP = strIP.substring(strIP.indexOf( ":") + 1);
    String province = strIP.substring(6, strIP.indexOf("省"));
    String city = strIP.substring(strIP.indexOf("省") + 1, strIP.indexOf("市"));
    ... ...
    ... ...
  }
  catch( IOException e)
  {
    return "读取失败";
  }
}

附:

新浪接口:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=

淘宝接口:http://ip.taobao.com/service/getIpInfo.php?ip=[ip地址字串]

(0)

相关推荐

  • java获取ip地址示例

    如果使用了反向代理软件,将http://192.168.1.110:2046/ 的URL反向代理为http://www.xxx.com/ 的URL时,用request.getRemoteAddr()方法获取的IP地址是:127.0.0.1 或 192.168.1.110,而并不是客户端的真实IP. 经过代理以后,由于在客户端和服务之间增加了中间层,因此服务器无法直接拿到客户端的IP,服务器端应用也无法直接通过转发请求的地址返回给客户端.但是在转发请求的HTTP头信息中,增加了X-FORWARDE

  • Java中使用HttpRequest获取用户真实IP地址

    在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid,nginx等反向代理软件就不能获取到客户端的真实IP地址了. 如果使用了反向代理软件,将http://192.168.1.110:2046/ 的URL反向代理为 http://www.jb51.net / 的URL时,用request.getRemoteAddr()方法获取的IP地址是:127.0.0.1 或 192.168.1.110

  • java中通过网卡名称获取IP地址

    复制代码 代码如下: package me.xuzs.sso.test; import java.net.InetAddress;import java.net.NetworkInterface;import java.net.SocketException;import java.util.Enumeration; public class InternetTest { public static void main(String[] args) {        String netCard

  • java通过ip获取客户端Mac地址的小例子

    复制代码 代码如下: package com.yswc.dao.sign; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.regex.Matcher; import java.util.regex.Pattern; /** *  * 获取MAC地址 *  * @author *  * 2011-12 *  */ public class GetMacAddress { publi

  • Java实现获取客户端真实IP方法小结

    在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了.如果使用了反向代理软件,用request.getRemoteAddr()方法获取的IP地址是:127.0.0.1或192.168.1.110,而并不是客户端的真实IP. 经过代理以后,由于在客户端和服务之间增加了中间层,因此服务器无法直接拿到客户端的 IP,服务器端应用也无法直接通过转发请

  • java实现根据ip地址获取地理位置

    最近项目某个功能需要根据ip地址从第三方接口获取详细的地理位置,从网上找了很多例子,主要接口有新浪的,淘宝的,腾讯的.试了淘宝的,如果是数量级小的还可以,如果数量级达到上十万级就速度慢了,会导致系统崩溃.下面例子是新浪的,例子不是适合每个项目,需要改一下. /** ipSearchUrl=http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=(这是新浪的接口地址) 在项目中新浪的接口地址没有直接写死,而是去读属性文件. *

  • java实现根据ip地址获取地理位置的代码分享

    前几天想给网站后台加个解析ip所在地理位置的功能,在网上看了一些博客,找了几段程序,但总觉得写的不够简洁,感觉很啰嗦.下面这个程序,感觉还算简洁,于是整理调试了一下,可以用,程序调用了"腾讯ip分享计划"提供的接口,当然也可以改成ip138提供的接口,不过这两个网站返回的字符串格式有些不同,要分别做解析. public String getAddressByIP() { try { String strIP = "0.0.0.0"; URL url = new UR

  • Python2.7基于淘宝接口获取IP地址所在地理位置的方法【测试可用】

    本文实例讲述了Python2.7基于淘宝接口获取IP地址所在地理位置的方法.分享给大家供大家参考,具体如下: #!/usr/bin/python import sys, os, urllib2, json def get_ip_area(ip): try: apiurl = "http://ip.taobao.com/service/getIpInfo.php?ip=%s" %ip content = urllib2.urlopen(apiurl).read() data = json

  • java根据ip地址获取详细地域信息的方法

    互联网有很多接口可以实现通过ip查询到具体的位置,如下: 通过淘宝IP地址库获取IP位置 请求接口(GET):http://ip.taobao.com/service/getIpInfo.php?ip=[ip地址字串] 响应信息:(json格式的)国家 .省(自治区或直辖市).市(县).运营商 返回数据格式: {"code":0,"data":{"ip":"210.75.225.254","country"

  • Java根据ip地址获取归属地实例详解

    目录 引言 Java 中是如何获取 IP 属地的 首先需要写一个 IP 获取的工具类 内置的三种查询算法 使用方法 项目用到的全部依赖 引言 最近,各大平台都新增了评论区显示发言者ip归属地的功能,例如哔哩哔哩,微博,知乎等等. Java 中是如何获取 IP 属地的 主要分为以下几步 通过 HttpServletRequest 对象,获取用户的 IP 地址 通过 IP 地址,获取对应的省份.城市 首先需要写一个 IP 获取的工具类 因为每一次用户的 Request 请求,都会携带上请求的 IP 

  • php实现根据IP地址获取其所在省市的方法

    根据现有IP地址获取其地理位置(省份,城市等)的方法 function GetIpLookup($ip = ''){ if(empty($ip)){ return '请输入IP地址'; } $res = @file_get_contents('http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=' . $ip); if(empty($res)){ return false; } $jsonMatches = array(

  • PHP根据IP地址获取所在城市具体实现

    文件目录: ipLocation-----qqwry----------QQWry.Dat-----ipCity.class.php ipCity.class.php文件代码: 复制代码 代码如下: <?php class ipCity { /**     * 根据ip地址获取对应所在城市     * @param type $userip 用户IP地址     * @return string     */    public function getCity( $userip, $dat_p

  • JAVA获得域名IP地址的方法

    本文实例讲述了JAVA获得域名IP地址的方法.分享给大家供大家参考.具体如下: import java.net.InetAddress; import java.net.UnknownHostException; public class TestInetAddress { InetAddress myIpAddress = null; InetAddress[] myServer = null; public static void main(String args[]) { TestInet

  • Java编程IP地址和数字相互转换代码示例

    最近才知道,将ip地址转换成十进制.八进制.十六进制同样可以访问网站. IP转为数字(第二种算法.用左移.按位或实现.效率更高.): public long ipToLong(String ipAddress) { long result = 0; String[] ipAddressInArray = ipAddress.split("\\."); for (int i = 3; i >= 0; i--) { long ip = Long.parseLong(ipAddress

  • java正则表达式判断 ip 地址是否正确解析

    这篇文章主要介绍了java正则表达式判断 ip 地址是否正确解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 代码如下 public class ClassWork05 { public static void main(String[] args) { System.out.println(IsIp.isIp("10.10.1.1")); } } class IsIp{ public static boolean isIp(Str

随机推荐