`

JAVA联网查询IP地址归属

    博客分类:
  • Http
 
阅读更多
原理是根据淘宝提供的service查询IP的归属地并且解析http请求返回的json串。
我之前也是伸手党,现在也给伸手党提供下方便。
淘宝返回的数据为:
{"code":0,"data":{"country":"\u4e2d\u56fd","country_id":"CN","area":"\u534e\u4e1c","area_id":"300000","region":"\u5c71\u4e1c\u7701","region_id":"370000","city":"\u4e1c\u8425\u5e02","city_id":"370500","county":"","county_id":"-1","isp":"\u8054\u901a","isp_id":"100026","ip":"60.214.183.158"}}

用法:
String arr1 = GetAddressByIp.GetAddressByIp("120.192.182.1");
System.out.println(arr1);
详细请看代码

package getAddressByIp;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

import net.sf.json.JSONObject;

public class GetAddressByIp
{


/**
  *
  * @param IP
  * @return
  */
public static String GetAddressByIp(String IP){
  String resout = "";
  try{
   String str = getJsonContent("http://ip.taobao.com/service/getIpInfo.php?ip="+IP);
   System.out.println(str);
  
   JSONObject obj = JSONObject.fromObject(str);
   JSONObject obj2 = (JSONObject) obj.get("data");
   String code = (String) obj.get("code");
   if(code.equals("0")){
  
    resout = obj2.get("country")+"--" +obj2.get("area")+"--" +obj2.get("city")+"--" +obj2.get("isp");
   }else{
    resout = "IP地址有误";
   }
  }catch(Exception e){
  
   e.printStackTrace();
    resout = "获取IP地址异常:"+e.getMessage();
  }
  return resout;
  
}
  
    public static String getJsonContent(String urlStr)
    {
        try
        {// 获取HttpURLConnection连接对象
            URL url = new URL(urlStr);
            HttpURLConnection httpConn = (HttpURLConnection) url
                    .openConnection();
            // 设置连接属性
            httpConn.setConnectTimeout(3000);
            httpConn.setDoInput(true);
            httpConn.setRequestMethod("GET");
            // 获取相应码
            int respCode = httpConn.getResponseCode();
            if (respCode == 200)
            {
                return ConvertStream2Json(httpConn.getInputStream());
            }
        }
        catch (MalformedURLException e)
        {
            e.printStackTrace();
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
        return "";
    }

  
    private static String ConvertStream2Json(InputStream inputStream)
    {
        String jsonStr = "";
        // ByteArrayOutputStream相当于内存输出流
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        byte[] buffer = new byte[1024];
        int len = 0;
        // 将输入流转移到内存输出流中
        try
        {
            while ((len = inputStream.read(buffer, 0, buffer.length)) != -1)
            {
                out.write(buffer, 0, len);
            }
            // 将内存流转换为字符串
            jsonStr = new String(out.toByteArray());
        }
        catch (IOException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return jsonStr;
    }
}
分享到:
评论

相关推荐

    java调用淘宝api联网查询ip归属地

    java联网查询IP归属地,原理是根据淘宝提供的service查询IP的归属地并且解析http请求返回的json串

    IP地址切换器(JAVA版)

    内外网切换工具,用java写的,目前在XP上可以使用!

    C语言实现联网获取IP地址的地域信息

    本程序基于SOcket编程,实现从IP138网站截取得到对应IP地址的地域信息,比如省份,城市等信息

    根据ip地址查询所在城市

    MFC开发,根据ip地址查询所在地,有查询本地库QQWry.dat,和上网查询两种方式。如果是上网查询,最好将方法放到线程中,因为网络的缘故会卡。

    网站IP地址查询小工具

    网站IP地址查询小工具! 个人用JAVA写的简单东西,不过在联网时,能准确查到域名所对应的IP地址!

    C#获取局域网内所有联网设备的IP地址和MAC地址

    C#获取局域网内所有联网设备的IP地址和MAC地址

    ip地址原理

    ip地址原理 对网络方面感兴趣的朋友们不得不看

    超级好用IP地址更改工具

    超级好用的IP地址更改工具!可以定时更改IP地址.

    android手机获取上网的ip地址

    手机上网后,打开程序,ip地址就显示出来了。

    IP地址切换器

    你有没有遇到过这种情况:在家里笔记本设置好了上网自动获取IP地址,但是到了单位却是分配的固定IP地址,每次上班和回到家里都要重新设置,不胜其烦,现在好了,有了IP地址切换器,只要预先设置好家里和单位的网络...

    IP地址隐藏工具

    IP地址:在控制面板里找到网络连接,并在网络连接里找你上网的那个连接(局域网的话一般是“本地连接”)右键你的连接,选择“状态”­详细信息,那个客户端IP地址就是你的IP地址。> 或者也可以用这个方法:开始...

    C#实现获取多网卡IP地址方法

    C#实现获取多网卡IP地址方法,该方法可以遍历出所有网卡的IP地址。

    获取手机所处的网络IP地址

    获取手机所处网络的IP地址。WIFI联网是可获得外网和各层路由得IP地址

    五号板卡联网打印IP地址和打印机设定

    五号板卡联网打印IP地址和打印机设定

    自动填IP地址

    你可能有这样的体会,开机进入桌面后,点击桌面上的图标,点这个...但在局域网上网(用路由器上网就属此类),用的是本地连接,因此本地连接的IP必须要正确(要么接受自动分配,要么手动填入正确的IP地址,方可上网)。

    C#实现获取本地内网(局域网)和外网(公网)IP地址的方法分析

    本文实例讲述了C#实现获取本地内网(局域网)和外网(公网)IP地址的方法。分享给大家供大家参考,具体如下: 1、获取本机的IP地址集合: /// /// 获取本机所有ip地址 /// /// <param name=netType>InterNetwork:...

    自动更新IP地址

    你可能有这样的体会,开机进入桌面后,点击桌面上的图标,点这个...但在局域网上网(用路由器上网就属此类),用的是本地连接,因此本地连接的IP必须要正确(要么接受自动分配,要么手动填入正确的IP地址,方可上网)。

    C#获取局域网内所有计算机的IP地址和MAC地址

    C#实现获取局域网内所有计算机的IP地址和MAC地址的控制台应用程序源码 程序启动时首先获取本机的IP和MAC地址; 然后获取局域网内所有计算机的IP地址; 输入IP地址回车,获取该IP的MAC地址; 输入“STARTSCAN”回车...

Global site tag (gtag.js) - Google Analytics