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);
|
}
|
|
}
|