All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.sf.weixinmp.thirdparty.IPAddressService Maven / Gradle / Ivy

The newest version!
package net.sf.weixinmp.thirdparty;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import net.sf.weixinmp.thirdparty.model.IP;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.methods.GetMethod;
import org.json.JSONObject;
/**
 * 查询IP地址归属地的服务 http://whois.pconline.com.cn/
 * 接口列表:
*
  • (1)ip.jsp
  • (2)ipJson.jsp
  • (3)jsAlert.jsp
  • (4)jsDom.jsp
  • (5)jsFunction.jsp
  • (6)jsLabel.jsp
  • (7)jsWrite.jsp
  • (8)whois/index.jsp
接口参数: @param ip:可指定IP地址,不指定则取request.getRemoteAddr()的值。
支持以下格式:
  • (a)202.96.159.254
  • (b)202.096.159.254
  • (c)202.96.159.254/192.168.20.106 (适用于接口1-8)
@param rep:可指定活动页代码,输出的结果会按系统设置映射到相应的地区 (适用于接口1-8)
@param level:可指定输出结果的精度,=1/=2/=3分别代表只输出省名称/输出省市名称/输出省市区名称 (适用于接口1-8)
@param siteId:可指定网站或应用代码,输出IP所属的区域 (适用于接口2,5. siteId与rep原则上是互斥的)
@param callback:指定回调函数的名称, 不指定则默认为'IPCallBack' (适用于接口2,5)
@param domId:指定结点ID (适用于接口4, 必须指定)
@param id:指定结点ID (适用于接口6, 必须指定)
* @author Mao, Anping * */ public class IPAddressService extends AbstractHttpService{ public static final String IP_QUERY_URL="http://whois.pconline.com.cn/ipJson.jsp"; @Override protected void configureHttpClient() { httpClient = new HttpClient(); method = new GetMethod(IP_QUERY_URL); } /** * */ public IP onSuccess() throws HttpException, IOException { //数据demo if(window.AA) {AA({"ip":"115.199.97.37","pro":"浙江省","city":"杭州市","region":"","addr":"浙江省杭州市","regionNames":""});} String content=method.getResponseBodyAsString(); String jsonData=content.substring(content.indexOf("{", content.indexOf("{")+1)/*左起第二个话括弧*/, content.indexOf("}")+1/*第一个反括号结束*/); JSONObject jsonObject=new JSONObject(jsonData); IP ip=new IP(); ip.setIp(jsonObject.getString("ip")); ip.setAddr(jsonObject.getString("addr")); ip.setCity(jsonObject.getString("city")); ip.setPro(jsonObject.getString("pro")); ip.setRegion(jsonObject.getString("region")); ip.setRegionNames(jsonObject.getString("regionNames")); return ip; //反射效率太低 //return (IP)JSONObject.toBean(jsonObject, IP.class); } public IP lookup(String ip) throws IOException{ Map params=new HashMap(); params.put("ip", ip); return this.execute(params); } public IP onFailure() throws HttpException, IOException { return null; } public static void main(String[] args) throws IOException { IPAddressService service=new IPAddressService(); System.out.println(service.lookup("60.176.171.139")); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy