|
|
|
|
@ -165,43 +165,61 @@ public class MainController extends cokr.xit.base.web.MainController {
|
|
|
|
|
@RequestMapping(name="접속자 IP 확인", value="/ipInfo.do")
|
|
|
|
|
public ModelAndView ipInfo(HttpServletRequest hreq) {
|
|
|
|
|
String flag = hreq.getParameter("flag");
|
|
|
|
|
boolean flagUsable = false;
|
|
|
|
|
String remoteAddr = CmmnUtil.getClientIpAddr(hreq);
|
|
|
|
|
|
|
|
|
|
String net = "";
|
|
|
|
|
String[] LOCAL = {"127.0.0.1", "0:0:0:0:0:0:0:1"};
|
|
|
|
|
String[] PRIVATES = {"10.","172.16.","172.31.","192.168."};
|
|
|
|
|
String[] SGG_NET = {"211.119.124."};
|
|
|
|
|
String XIT_NET = "211.119.124.";
|
|
|
|
|
List<String> SGG_NET = FimsConf.get().getSggNet();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(remoteAddr.equals(LOCAL[0]) || remoteAddr.equals(LOCAL[1])) {
|
|
|
|
|
if(flag != null && !flag.equals("")){
|
|
|
|
|
net = flag;
|
|
|
|
|
} else {
|
|
|
|
|
net = "intra";
|
|
|
|
|
}
|
|
|
|
|
net = "intra";
|
|
|
|
|
flagUsable = true;
|
|
|
|
|
} else if(remoteAddr.startsWith(PRIVATES[0])
|
|
|
|
|
|| remoteAddr.startsWith(PRIVATES[1])
|
|
|
|
|
|| remoteAddr.startsWith(PRIVATES[2])
|
|
|
|
|
|| remoteAddr.startsWith(PRIVATES[3])){
|
|
|
|
|
net = "intra";
|
|
|
|
|
} else if(SGG_NET.length > 0){
|
|
|
|
|
for(String sgg : SGG_NET) {
|
|
|
|
|
if(remoteAddr.startsWith(sgg)) {
|
|
|
|
|
net = "intra";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(flag != null && !flag.equals("")){
|
|
|
|
|
flagUsable = true;
|
|
|
|
|
} else if(remoteAddr.startsWith(XIT_NET)) {
|
|
|
|
|
net = "intra";
|
|
|
|
|
flagUsable = true;
|
|
|
|
|
} else if(this.includeIp(remoteAddr,SGG_NET)) {
|
|
|
|
|
net = "intra";
|
|
|
|
|
flagUsable = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(flag != null && !flag.equals("")){
|
|
|
|
|
if(flagUsable) {
|
|
|
|
|
net = flag;
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
net = "inter";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(net.equals("")) {
|
|
|
|
|
net = "inter";
|
|
|
|
|
}
|
|
|
|
|
return new ModelAndView("jsonView")
|
|
|
|
|
.addObject("remoteAddr", remoteAddr)
|
|
|
|
|
.addObject("net", net)
|
|
|
|
|
;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private boolean includeIp(String ipAddr, List<String> ipBand){
|
|
|
|
|
boolean result = false;
|
|
|
|
|
|
|
|
|
|
if(ipBand != null && ipBand.size() > 0){
|
|
|
|
|
for(String item : ipBand) {
|
|
|
|
|
if(ipAddr.startsWith(item)) {
|
|
|
|
|
result = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@RequestMapping(name="서버 이벤트 수신 등록", value="/subscribe.do")
|
|
|
|
|
public SseEmitter subscribe(HttpServletRequest req) {
|
|
|
|
|
|