因为自己网站后台做了一个进站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包,方法自行百度,在此不赘述

希望对大家有所帮助

以上


最新文章

  1. MAPPING SEGMENTS TO PAGES
  2. 50ms延时程序
  3. ServiceStack.Redis之IRedisClient<第三篇>
  4. HTTP 协议的头部
  5. js的各种继承
  6. myeclipse报错:Could not create the view: An unexpected exception was thrown.
  7. 获取EXe版本信息
  8. 类结构体 与 byte[] 转换类
  9. methanol 模块化的可定制的网页爬虫软件,主要的优点是速度快。
  10. Inter IPP 跟 Microsoft V100编译器区别
  11. leetcode [64] merge tow sorted lists
  12. Oracle常用语句记录
  13. JS查错小工具-三生有幸【推荐】
  14. [Java算法分析与设计]--线性结构与顺序表(List)的实现应用
  15. 在 Docker 容器中运行应用程序
  16. workerman程序调试
  17. Python中什么是变量
  18. MVC 学习(一)Linq to Entities 简单Demo
  19. Java入门系列(四)内部类
  20. C++笔记 4

热门文章

  1. 图片选择并使用base64展示
  2. 【剑指Offer】24、二叉树中和为某一值的路径
  3. 论文阅读笔记(七)【TIP2018】:Video-Based Person Re-Identification by Simultaneously Learning Intra-Video and Inter-Video Distance Metrics
  4. 2级搭建类201-Oracle 12cR2 单实例 ASM(OEL7.7)公开
  5. 1级搭建类102-Oracle 11g 单实例 FS(11.2.0.4+RHEL 7)公开
  6. Give me five !
  7. CSS 实现一个自适应的正方形
  8. ZOJ1310-Robot (BFS)
  9. Python之路Day08
  10. 树莓派操作案例1-使用python GPIO+TB6612驱动步进电机