package cn.ksource.web.service.impl; import java.util.Map; import cn.ksource.core.CascadeMap; import cn.ksource.core.dao.BaseDao; import cn.ksource.core.dao.SqlParameter; import cn.ksource.core.util.CodeUtil; import cn.ksource.core.util.ConvertUtil; import cn.ksource.core.util.DateUtil; import cn.ksource.core.util.DefaultUtil; import cn.ksource.core.util.HttpCharset; import cn.ksource.core.util.HttpRemoteException; import cn.ksource.core.util.HttpUtil; import cn.ksource.core.util.IPEntity; import cn.ksource.core.util.IPUtil; import cn.ksource.core.util.JsonUtil; public class LoginTask implements Runnable { private BaseDao baseDao; private String userid; private String ip; private String remoteUrl = "http://int.dpool.sina.com.cn/iplookup/iplookup.php"; public LoginTask(BaseDao baseDao,String userid,String ip){ this.baseDao = baseDao; this.userid = userid; this.ip = ip; } public void run() { try { String ipStr ="" ; if (IPUtil.isInnerIP(ip)) { IPEntity ipEntity = IPUtil.getIpEntity(); ipStr = ipEntity.getLanIP() + "-" + ipEntity.getInternetIP() + "-" + ipEntity.getPosition(); } else { CascadeMap paraMap = new CascadeMap("ip",ip).put("format", "json"); String content = HttpUtil.doGet("http://int.dpool.sina.com.cn/iplookup/iplookup.php", paraMap, HttpCharset.UTF8); String json = CodeUtil.parseUnicode(content); Map ipMap = JsonUtil.json2Map(json); String position = DefaultUtil.defaultIfNull(ipMap.get("country"), "") + DefaultUtil.defaultIfNull(ipMap.get("province"), "") + DefaultUtil.defaultIfNull(ipMap.get("city"), "") + DefaultUtil.defaultIfNull(ipMap.get("district"), "") + DefaultUtil.defaultIfNull(ipMap.get("isp"), ""); ipStr = ip + position; } baseDao.execute("UPDATE GG_USER_LOGINIP SET LASTIP = THISIP,LASTTIME=THISTIME,THISIP=:IP,THISTIME=:THISTIME WHERE ID=:id", new SqlParameter("IP",ipStr).addValue("THISTIME", DateUtil.getCurrentDate14()) .addValue("id", userid) ); } catch (HttpRemoteException e) { e.printStackTrace(); } } public static void main(String[] args) throws HttpRemoteException { String content = HttpUtil.doGet("http://int.dpool.sina.com.cn/iplookup/iplookup.php?ip=222.137.195.30&format=json", null, HttpCharset.GBK); String json = CodeUtil.parseUnicode(content); System.out.println(json); } }