zoukankan      html  css  js  c++  java
  • java根据ip地址获取详细地域信息的方法

    通过淘宝IP地址库获取IP位置(也可以使用新浪的)

    请求接口(GET):http://ip.taobao.com/service/getIpInfo.php?ip=[ip地址字串]

    响应信息:(json格式的)国家 、省(自治区或直辖市)、市(县)、运营商

    package com;
    
    import net.sf.json.JSONObject;
    
    import java.io.ByteArrayOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.net.HttpURLConnection;
    import java.net.MalformedURLException;
    import java.net.URL;
    
    
    public class GetAddressByIp {
    
        public static void main(String[] args) {
            String resout = "";
            try{
                String str = getJsonContent("http://ip.taobao.com/service/getIpInfo.php?ip="+"162.128.125.6");
                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();
            }
            System.out.println("result: " + 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;
        }
    }

     返回的数据

    {
        "code": 0,
        "data": {
            "ip": "162.128.125.6",
            "country": "中国",
            "area": "",
            "region": "四川",
            "city": "成都",
            "county": "XX",
            "isp": "电信",
            "country_id": "CN",
            "area_id": "",
            "region_id": "510000",
            "city_id": "510100",
            "county_id": "xx",
            "isp_id": "100017"
        }
    }
  • 相关阅读:
    Intent
    What should we do next in general after collecting relevant data
    NOTE FOR Secure Friend Discovery in Mobile Social Networks
    missing pcap.h
    after building Android Source code
    plot point(one column)
    When talking to someone else, don't infer that is has been talked with others at first. It may bring repulsion to the person who is talking with you.
    进程基本知识
    Python input和raw_input的区别
    强制 code review:reviewboard+svn 的方案
  • 原文地址:https://www.cnblogs.com/james-roger/p/9316360.html
Copyright © 2011-2022 走看看