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 ...
随机推荐
- elasticsearch的window的安装和启动
1.下载elasticserch的window和kibana的安装包 2.解压 进入elasticseach的bin目录下elasticsearch.bat 启动页面localhost:9200 3 ...
- Mybatis书写
Mybatis设置主键和自增 方法1: <insert id="insert" parameterType="Person" useGeneratedKe ...
- 记录Flex布局的属性
容器属性 flex-dirextion(主轴的方向):>>row(水平) | row-reverse(水平取反) | column(垂直) | column-reverse(垂直取反) f ...
- BayaiM__ oracle函数_03_fjfl
BayaiM__ oracle函数_03_fjfl select TO_DATE(trunc(F_GXSJ),'YYYY-MONTH-DD') from fsxx_dx_log_new ...
- [PHP] 现代化PHP之路:composer的镜像站设置
1. 当使用composer安装一些类库的时候,默认的镜像站是官方的packagist.org,因为国内的网络环境原因,速度有时候会很慢 2. packagist的中国镜像站有 packagist.p ...
- fiddler---Fiddler工具详细介绍
在做测试的过程中,遇到一些问题都会去进行抓包,抓包可以帮助我们解决很多问题,抓包工具有很多比如fiddler,浏览器调试工具(F12),charles等,抓包工具是我们测试人员必不可少的一项技能. 什 ...
- 1. Git初始
一.Git初始 1. 定义 分布式的版本控制系统,在每个使用者电脑上就有一个完整的数据仓库,没有网络依然可以使用Git.当然为了习惯及团队协作,会将本地数据同步到Git服务器或者GitHub等代码 ...
- win10安装配置mongodb
1. 下载MongoDB并安装官网下载地址:https://blog.csdn.net/qq_41127332/article/details/80755595 ,选择合适的版本进行下载.我选择是3. ...
- day54_9_18视图层某内部原理(fbv和cbv)与模板层
一.render内部原理. 在render中往往需要返回三个参数,request,模板和一些键值对. 键值对中存储的是需要对模板渲染的值. 如果手动实现可以如下: from django.templa ...
- django haystack报错: ModuleNotFoundError: No module named 'blog.whoosh_cn_backend'
在配置django haystack时报错: 解决方案: 将ENGINE的值 改为 这样就可以了.