zoukankan      html  css  js  c++  java
  • 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的详细信息的提取
  • 相关阅读:
    C#使用Xamarin开发可移植移动应用(5.进阶篇显示弹出窗口与通讯中心)附源码
    C#使用Xamarin开发可移植移动应用(4.进阶篇MVVM双向绑定和命令绑定)附源码
    C#使用Xamarin开发可移植移动应用(3.Xamarin.Views控件)附源码
    C#使用Xamarin开发可移植移动应用(2.Xamarin.Forms布局,本篇很长,注意)附源码
    C#使用Xamarin开发可移植移动应用(1.入门与Xamarin.Forms页面),附源码
    ASP.NET Core之跨平台的实时性能监控(2.健康检查)
    Android Studio 快捷键:重载与重写、try catch代码块、导包 快捷键
    新版本jQuery对动态添加元素绑定点击事件实例
    ssm框架中,mybatis的sql语句日志输出
    maven环境下的ssm框架上传excel 案例
  • 原文地址:https://www.cnblogs.com/tremb1e/p/11066255.html
Copyright © 2011-2022 走看看