码迷,mamicode.com
首页 > 编程语言 > 详细

java_获取指定ip的定位

时间:2019-05-22 12:38:00      阅读:307      评论:0      收藏:0      [点我收藏+]

标签:map   返回   php   who   lookup   stream   enc   region   under   

因为自己网站后台做了一个进站ip统计,之前只是获取了ip,这次优化了下,把ip的大致区域弄出来了

废话不多说,进正题

首先要用到几个网络大头的api

淘宝API:http://ip.taobao.com/service/getIpInfo.php?ip=218.192.3.42
新浪API:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=218.192.3.42
pconline API:http://whois.pconline.com.cn/
百度API:http://api.map.baidu.com/location/ip?ip=218.192.3.42

接下来用json解析返回的数据就好
下面直接上解析源码(不是网站的源码,是之前java测试的源码,原理一样)

package exe;

import net.sf.json.JSONObject;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

/**
 * 通过淘宝的API来获取指定IP的定位
 */

/**
 *  各种API接口
 *  淘宝API:http://ip.taobao.com/service/getIpInfo.php?ip=218.192.3.42
 *     新浪API:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=218.192.3.42
 *     pconline API:http://whois.pconline.com.cn/
 *     百度API:http://api.map.baidu.com/location/ip?ip=218.192.3.42
 */
public class get_analyse_ip {
    /**
     * 涉及到解析json
     */
    public static void main(String[] args) {
        HttpURLConnection connection ;
        String api = "http://ip.taobao.com/service/getIpInfo.php";
        String connect_symbol = "?";
        String front_name = "ip=";
        Scanner sc = new Scanner(System.in);
        String real_ip = sc.next();
        URL url ;
        BufferedReader bf ;
        StringBuffer sb = new StringBuffer();
        try {
            url = new URL(api+connect_symbol+front_name+real_ip);
            connection = (HttpURLConnection)url.openConnection();
            bf = new BufferedReader(new InputStreamReader(connection.getInputStream(),"utf-8"));
            String line = "";
            while(null!=(line = bf.readLine())){
                sb.append(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
//        System.out.println(sb);
        JSONObject dataObject = JSONObject.fromObject(sb.toString());
        JSONObject jsonObject= dataObject.getJSONObject("data");
        System.out.println(jsonObject.toString());
        System.out.println("ip:"+jsonObject.get("ip"));
        System.out.println("country:"+jsonObject.get("country"));
        System.out.println("area:"+jsonObject.get("area"));
        System.out.println("region:"+jsonObject.get("region"));
        System.out.println("county:"+jsonObject.get("county"));
        System.out.println("isp:"+jsonObject.get("isp"));
     System.out.println("city:"+jsonObject.get("city")); System.out.println(
"country_id:"+jsonObject.get("country_id")); System.out.println("area_id:"+jsonObject.get("area_id")); System.out.println("region_id:"+jsonObject.get("region_id")); System.out.println("city_id:"+jsonObject.get("city_id")); System.out.println("county_id:"+jsonObject.get("county_id")); System.out.println("isp_id:"+jsonObject.get("isp_id")); } }

要导入json第三方jar包,方法自行百度,在此不赘述

 

希望对大家有所帮助

以上




java_获取指定ip的定位

标签:map   返回   php   who   lookup   stream   enc   region   under   

原文地址:https://www.cnblogs.com/lavender-pansy/p/10905201.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!