Jsp調用淘寶IP地址庫獲取來訪IP詳細信息

Jsp調用淘寶IP地址庫獲取來訪IP詳細信息

  示例網頁點擊:www.trembler.cn/ipinfo/ipinfo(服務器有其餘用處,頁面已失效)javascript

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的詳細信息的提取
相關文章
相關標籤/搜索