通过ip地址判断用户地址工具类
通过ip地址判断用户地址工具类
// 测试 public static void main(String[] args) throws ClientProtocolException, IOException { String ip = "114.84.158.55"; String add[] = getCityNameByTaoBaoAPI(ip); System.out.println("国家:"+ add[0] +",省份:"+ add[1] +",城市:"+add[2]); } @SuppressWarnings({ "unchecked", "rawtypes"}) public static String[] getCityNameByTaoBaoAPI(String ip) { URL url = null; try { url = new URL("http://ip.taobao.com/service/getIpInfo.php?ip=" + ip); URLConnection conn = url.openConnection(); BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8")); String line = null; StringBuilder result = new StringBuilder(); while ((line = reader.readLine()) != null) { result.append(line); } reader.close(); String res = result.toString(); Gson gson = new Gson(); HashMap<String, Object> kv = gson.fromJson(res, HashMap.class); if (kv == null) { return null; } LinkedTreeMap map = (LinkedTreeMap) kv.get("data"); String[] location = new String[3]; location[0] = ""; //国家 location[1] = ""; //省份 location[2] = ""; //市区 if ((map != null) && (!map.isEmpty())) { location[0] = (String) map.get("country"); location[1] = (String) map.get("region"); location[2] = (String) map.get("city"); } return location; } catch (Exception e) { log.error("-----(cLuo web后台)通过ip查询用户IP省份地理位置信息错误:----->", e); return null; } }