欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

JAVA联网查询IP地址归属,java联网ip归属,原理是根据淘宝提供的se

来源: javaer 分享于  点击 3241 次 点评:128

JAVA联网查询IP地址归属,java联网ip归属,原理是根据淘宝提供的se


原理是根据淘宝提供的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"}}用法:Stringarr1=GetAddressByIp.GetAddressByIp("120.192.182.1");System.out.println(arr1);详细请看代码```java

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;}

}

```

相关栏目:

用户点评