Jsp调用淘宝IP地址库获取来访IP详细信息
Jsp调用淘宝IP地址库获取来访IP详细信息
示例网页点击:www.trembler.cn/ipinfo/ipinfo(服务器有其他用处,页面已失效)
String ip = request.getRemoteAddr();//获取来访者IP
String path = "http://ip.taobao.com/service/getIpInfo.php?ip="+ip;//调用淘宝API
URLConnection url = new URL(path).openConnection();
url.connect();//发送GET方法
StringBuilder stringBuilder = new StringBuilder();
BufferedReader reader = new BufferedReader(new InputStreamReader(url.getInputStream(), StandardCharsets.UTF_8));//获取得到的信息
String line = null;
while ((line = reader.readLine())!=null){
stringBuilder.append(line);
}
JSONObject jsonInfo = JSON.parseObject(stringBuilder.toString());
System.out.println(stringBuilder.toString());
- 代码中的JSONObject是使用了阿里的fastjson类,需要导入这个包,点击下载。
- 上述方法已经在控制台输出了获取到的json格式的IP详细信息,接下来使用阿里fastjson类提取出关键信息。
if(jsonInfo.getString("code").equals("0")){//返回code为0时为正常情况
String data = jsonInfo.getString("data");
JSONObject ipInfo = JSON.parseObject(data);
//接下来要从ipInfo的json中提取出详细信息
pw.println("<table align=center>");
pw.println("<tr align=center>");
pw.println("<td align=right/>ip:");
pw.println("<td align=center/>"+ipInfo.getString("ip"));
pw.println("<tr/>");
pw.println("<tr align=center>");
pw.println("<td align=right/>国家:");
pw.println("<td align=center/>"+ipInfo.getString("country"));
pw.println("<tr/>");
pw.println("<tr align=center>");
pw.println("<td align=right/>国家id:");
pw.println("<td align=center/>"+ipInfo.getString("country_id"));
pw.println("<tr/>");
pw.println("<tr align=center>");
pw.println("<td align=right/>地区:");
pw.println("<td align=center/>"+ipInfo.getString("area"));
pw.println("<tr/>");
pw.println("<tr align=center>");
pw.println("<td align=right/>地区id:");
pw.println("<td align=center/>"+ipInfo.getString("area_id"));
pw.println("<tr/>");
pw.println("<tr align=center>");
pw.println("<td align=right/>省份:");
pw.println("<td align=center/>"+ipInfo.getString("region"));
pw.println("<tr/>");
pw.println("<tr align=center>");
pw.println("<td align=right/>省份id:");
pw.println("<td align=center/>"+ipInfo.getString("region_id"));
pw.println("<tr/>");
pw.println("<tr align=center>");
pw.println("<td align=right/>城市:");
pw.println("<td align=center/>"+ipInfo.getString("city"));
pw.println("<tr/>");
pw.println("<tr align=center>");
pw.println("<td align=right/>城市id:");
pw.println("<td align=center/>"+ipInfo.getString("city_id"));
pw.println("<tr/>");
pw.println("<tr align=center>");
pw.println("<td align=right/>县区:");
pw.println("<td align=center/>"+ipInfo.getString("county"));
pw.println("<tr/>");
pw.println("<tr align=center>");
pw.println("<td align=right/>县区id:");
pw.println("<td align=center/>"+ipInfo.getString("county_id"));
pw.println("<tr/>");
pw.println("<tr align=center>");
pw.println("<td align=right/>运营商:");
pw.println("<td align=center/>"+ipInfo.getString("isp"));
pw.println("<tr/>");
pw.println("<tr align=center>");
pw.println("<td align=right/>运营商id:");
pw.println("<td align=center/>"+ipInfo.getString("isp_id"));
pw.println("<tr/>");
- 至此就完成了对IP的详细信息的提取
Jsp调用淘宝IP地址库获取来访IP详细信息的更多相关文章
- Python之通过IP地址库获取IP地理信息
利用第三方的IP地址库,各个公司可以根据自己的业务情况打造自己的IP地址采集分析系统.例如游戏公司可以采集玩家地区信息,进行有针对性的运营策略,还可能帮助分析玩家网络故障分布等等. #!/usr/bi ...
- IP地址库解析——读取IP地址获得实际地理位置信息的java源码实现
说明:IP地址库来自QQwry.dat数据库文件,通过解析地址库当中的ip,已经细化最后获取的信息:获取ip地址对应的:国家 / 省 / 市 / 运营商ISP信息. 解析主要用到三个类: (1) IP ...
- 通过淘宝IP地址库获取IP位置
地址:http://ip.taobao.com/ 提供的服务包括: 1. 根据用户提供的IP地址,快速查询出该IP地址所在的地理信息和地理相关的信息,包括国家.省.市和运营商. 2. 用户可以根据自己 ...
- 淘宝IP地址库获取到省市IP地址
http://ip.aliyun.com/index.html https://ispip.clang.cn/ https://github.com/Pingze-github/local-ips 1 ...
- 通过新浪ip地址库获取用户省份
<script src="http://apps.bdimg.com/libs/jquery/1.11.3/jquery.min.js"></script> ...
- C#获取外网IP地址;C#获取所在IP城市地址
public static string GetIP() { using (var webClient = new WebClient()) ...
- python3.4学习笔记(二十三) Python调用淘宝IP库获取IP归属地返回省市运营商实例代码
python3.4学习笔记(二十三) Python调用淘宝IP库获取IP归属地返回省市运营商实例代码 淘宝IP地址库 http://ip.taobao.com/目前提供的服务包括:1. 根据用户提供的 ...
- Delphi使用JSON解析调用淘宝IP地址库REST API 示例
淘宝IP地址库:http://ip.taobao.com,里面有REST API 说明. Delphi XE 调试通过,关键代码如下: var IdHTTP: TIdHTTP; RequestURL: ...
- 淘宝IP地址库API地址
淘宝IP地址库:http://ip.taobao.com/instructions.php 接口说明 1. 请求接口(GET): http://ip.taobao.com/service/getI ...
随机推荐
- liteos MMU(十八)
1. 概述 1.1 基本概念 MMU全称"Memory Management Unit",顾名思义就是"内存管理单元". 1.2 运作机制 建立页表描述符号表, ...
- [PHP] 内部接口简单加密验证方式
1. 当有内部系统之间进行调用的时候,也需要简单的进行一下调用方的验证,一种简单的内部接口加密验证方式.此加密方式需要三个参数,分别是api地址,pin码,entry标识,其中pin和entry是接口 ...
- Windows Redis 开机启动后台运行
1. 从 Redis 的安装目录进入 cmd 2. 在 cmd 中输入, 将Redis绑定为 Windows 服务, 并设置为后台启动: redis-server --service-install ...
- BouncyCastle配置
1.BouncyCastle简介 BouncyCastle是一款开源的密码包,其中包含了大量的密码算法,使用BouncyCastle的目的就是为了扩充算法支持 下载地址最新加密组件包 http://w ...
- springboot中http 的get post put delete请求
组合注解(RequestMapping的变形) @GetMapping = @RequestMapping(method = RequestMethod.GET)@PostMapping = @Req ...
- R-时空可视化
Robert J. Hijmans37 开发了 raster 包用于网格空间数据的读.写.操作.分析和建模,同时维护了空间数据分析的网站 https://www.rspatial.org Edzer ...
- CloudCompare中对点云进行降采样和剪裁
降采样: Edit=>Subsample 出现一个弹窗,可以选择3种降采样的方式:Random, Space, Octree. 下面用一个例子来说明3种方式.例子是一个5.88M个点的点云文件( ...
- luoguP2824 [HEOI2016/TJOI2016]排序(线段树分裂做法)
题意 所谓线段树分裂其实是本题的在线做法. 考虑如果我们有一个已经排好序的区间的权值线段树,那么就可以通过线段树上二分的方法得到第\(k\)个数是谁. 于是用set维护每个升序/降序区间的左右端点以及 ...
- mysql 的基本命令
引子:Excel 最简单的数据库 Mysql:属于大型数据库 一.基本命令: 启动服务: 说明: 以管理员身份运行cmd 格式: net start 服务名称 实例: net start mysql ...
- 小测试整理(含T1 T2)
这次测试规模较小,前两题也较水,但需要整理 T1(Jelly的男♂难题1): 从一个点出发,以四连通的方式扩散,可以走#,不能走o,走过的格子每单位时间会增加1点高度,问扩散完整间屋子需要的时间,以及 ...