import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import org.json.JSONObject; public class AddressUtils { /** * @param args */ public static void main(String[] args) { AddressUtils addressUtils = new AddressUtils(); String ip = "118.213.176.78"; String address = ""; try { address = addressUtils.getAddress("ip="+ip, "utf-8"); } catch (Exception e) { e.printStackTrace(); } System.out.println(address); } /** * 获取地址 * @param params * @param encoding * @return * @throws Exception */ public String getAddress(String params, String encoding) throws Exception{ String path = "http://ip.taobao.com/service/getIpInfo.php"; String returnStr = this.getRs(path, params, encoding); JSONObject json=null; if(returnStr != null){ json = new JSONObject(returnStr); if("0".equals(json.get("code").toString())){ StringBuffer buffer = new StringBuffer(); //buffer.append(decodeUnicode(json.optJSONObject("data").getString("country")));//国家 //buffer.append(decodeUnicode(json.optJSONObject("data").getString("area")));//地区 buffer.append(decodeUnicode(json.optJSONObject("data").getString("region")));//省份 buffer.append(decodeUnicode(json.optJSONObject("data").getString("city")));//市区 buffer.append(decodeUnicode(json.optJSONObject("data").getString("county")));//地区 buffer.append(decodeUnicode(json.optJSONObject("data").getString("isp")));//ISP公司 System.out.println(buffer.toString()); return buffer.toString(); }else{ return "获取地址失败�?"; } } return null; } /** * 从url获取结果 * @param path * @param params * @param encoding * @return */ public String getRs(String path, String params, String encoding){ URL url = null; HttpURLConnection connection = null; try { url = new URL(path); connection = (HttpURLConnection)url.openConnection();// 新建连接实例 connection.setConnectTimeout(2000);// 设置连接超时时间,单位毫�? connection.setReadTimeout(2000);// 设置读取数据超时时间,单位毫�? connection.setDoInput(true);// 是否打开输出�? true|false connection.setDoOutput(true);// 是否打开输入流true|false connection.setRequestMethod("POST");// 提交方法POST|GET connection.setUseCaches(false);// 是否缓存true|false connection.connect();// 打开连接端口 DataOutputStream out = new DataOutputStream(connection.getOutputStream()); out.writeBytes(params); out.flush(); out.close(); BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(),encoding)); StringBuffer buffer = new StringBuffer(); String line = ""; while ((line = reader.readLine())!= null) { buffer.append(line); } reader.close(); return buffer.toString(); } catch (Exception e) { e.printStackTrace(); }finally{ connection.disconnect();// 关闭连接 } return null; } /** * 字符转码 * @param theString * @return */ public static String decodeUnicode(String theString){ char aChar; int len = theString.length(); StringBuffer buffer = new StringBuffer(len); for (int i = 0; i < len;) { aChar = theString.charAt(i++); if(aChar == '\\'){ aChar = theString.charAt(i++); if(aChar == 'u'){ int val = 0; for(int j = 0; j < 4; j++){ aChar = theString.charAt(i++); switch (aChar) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': val = (val << 4) + aChar - '0'; break; case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': val = (val << 4) + 10 + aChar - 'a'; break; case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': val = (val << 4) + 10 + aChar - 'A'; break; default: throw new IllegalArgumentException( "Malformed encoding."); } } buffer.append((char) val); }else{ if(aChar == 't'){ aChar = '\t'; } if(aChar == 'r'){ aChar = '\r'; } if(aChar == 'n'){ aChar = '\n'; } if(aChar == 'f'){ aChar = '\f'; } buffer.append(aChar); } }else{ buffer.append(aChar); } } return buffer.toString(); } }
相关推荐
- **淘宝IP接口**:淘宝提供的一项免费服务,允许开发者通过HTTP请求的方式查询指定IP地址对应的地理位置信息。 #### 实现原理 1. **HTTP请求**:向淘宝提供的IP地理位置查询服务发送包含待查询IP地址的HTTP GET...
strIP = result.substring(result.indexOf("该IP所在地为:") + "该IP所在地为:".length()); strIP = strIP.substring(strIP.indexOf(":") + 1); String province = strIP.substring(6, strIP.indexOf("省")); ...
淘宝IP地址库及其API服务,为开发者提供了强大的IP地址解析能力,无论是在网络安全防护、用户行为分析,还是数据统计与分析等方面,都有着广泛的应用前景。通过简单的API调用,即可获取详尽的IP地址相关信息,极大地...
"根据IP地址获取ip所在区域.rar"这个资源提供了一个功能,即通过调用淘宝IP地址库的接口,查询到一个IP地址对应的具体地理位置信息,包括国家、运营商、区域代码和运营商代码。淘宝IP地址库是一个庞大的数据库,包含...
php 根据登陆者的ip获取所在城市;包含新浪接口;淘宝接口,搜狐接口
在Python2.7中,利用淘宝提供的公开IP接口获取IP地址所在地理位置是一种常见的地理定位方法。淘宝IP库接口提供了一个简单的方式,通过HTTP请求获取指定IP的详细信息,包括国家ID、区域、城市和省份等。以下将详细...
该demo有多个JAVA实例,分别是基于:百度API,淘宝API和腾讯提供的IP库(qqwry.dat),开发的一个简单直接可以使用的web应用程序,通过Eclipse导入即可在Main方法中测试; 1.百度API已经提供测试ak密钥,实例中有:a....
在淘宝IP地址库提供的服务中,用户可以通过输入IP地址,快速获得该IP所在位置的详细地理信息。服务内容还包括用户可以基于自己的位置和使用的IP地址,对服务内容进行更新。此外,淘宝IP地址库还具有以下优势:它能...
【获取网站访客所在地位置】在互联网开发中是一项重要的功能,尤其对于大型网站而言,能够根据用户的位置提供个性化服务,极大地提升了用户体验。例如,58同城等网站在检测到用户所在地后,会自动跳转至相应的城市...
淘宝也有一个类似的IP查询服务,同样是返回JSON数据。解析后,可以通过对象的方式访问地区信息。 读取和展示返回的地区信息可以这样操作: ```php $array = get_object_vars($res1); foreach ($array as $value) ...
对日志进行分析时,想要同时显示IP所在地以及所属ISP,用脚本获取日志IP再逐条通过第三方接口查询显的很笨拙又要联网查询效率方面可想而知,可参见《使用PHP+淘宝IP地址库接口获得IP所属地理位置》。找到了一款工具...
在淘宝手机网站上,这个功能允许用户根据自己的实际所在地或者需要送达的区域来筛选商品,提高购物的便捷性和准确性。 1. **地理定位**:在淘宝手机网站上,选择区域功能往往依赖于设备的GPS或网络IP来获取用户的...
### Python 实现获取IP归属地信息 #### 一、引言 随着互联网技术的发展,IP地址作为网络设备的唯一标识,对于网络安全管理、数据分析等方面具有重要意义。了解IP地址的归属地可以帮助我们更好地进行网络监控、攻击...
有多个服务提供此类查询功能,例如淘宝的IP地址查询接口。通过将IP地址附加在特定的URL后面,服务端程序可以返回一个包含地理位置信息的JSON字符串。然后通过PHP中的json_decode函数将JSON字符串解析成PHP数组,就...
本信息模块主要涉及如何有效地采集阿里巴巴和淘宝平台上的信息。 首先,我们需要了解数据采集的基本概念。数据采集是通过各种技术手段,从互联网、数据库或特定接口获取所需信息的过程。在电商平台,这通常涉及到...