From 809cec786a98c983d4fd89e65d5adf98d425ca75 Mon Sep 17 00:00:00 2001 From: leebj Date: Thu, 28 Nov 2024 17:35:27 +0900 Subject: [PATCH] =?UTF-8?q?IP=EC=B2=B4=ED=81=AC=20=EC=88=98=EC=A0=95(?= =?UTF-8?q?=EB=82=B4=EB=B6=80=EB=A7=9D=20IP=20=EC=84=A4=EC=A0=95=ED=8C=8C?= =?UTF-8?q?=EC=9D=BC(xit-fims.conf)=EC=97=90=20=EC=B6=94=EA=B0=80=20?= =?UTF-8?q?=EA=B0=80=EB=8A=A5)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/cokr/xit/fims/FimsConf.java | 12 ++--- .../xit/fims/base/web/MainController.java | 48 +++++++++++++------ 2 files changed, 39 insertions(+), 21 deletions(-) diff --git a/src/main/java/cokr/xit/fims/FimsConf.java b/src/main/java/cokr/xit/fims/FimsConf.java index c7c2bc91..83363f37 100644 --- a/src/main/java/cokr/xit/fims/FimsConf.java +++ b/src/main/java/cokr/xit/fims/FimsConf.java @@ -27,11 +27,11 @@ public class FimsConf extends AbstractComponent { return conf; } - private String sgg; - private List tasks; - private List taskUrlNames; + private String sgg; //WAS서버 시군구코드 + + private List tasks; //업무코드 + private List taskUrlNames; //업무URL명칭 + + private List sggNet; //시군구별 내부망 IP대역 - public static void main(String[] args) { - System.out.println(FimsConf.get().getTasks()); - } } diff --git a/src/main/java/cokr/xit/fims/base/web/MainController.java b/src/main/java/cokr/xit/fims/base/web/MainController.java index 0c699852..267e4d31 100644 --- a/src/main/java/cokr/xit/fims/base/web/MainController.java +++ b/src/main/java/cokr/xit/fims/base/web/MainController.java @@ -166,43 +166,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 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 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) {