Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Oracle
- 물리적주소
- web server
- JEUS
- 개발자도구
- FCM
- Java
- eGov
- db
- WebtoB
- window10
- User-Agent
- 암호화
- programmers
- 접근장치
- 알고리즘
- dbms
- 브라우저
- @Scheduled
- Tomcat
- AES
- Firebase
- ua-parser
- scheduled
- Login
- URLRewirte
- WINDOW11
- Was
- mysql
- TailMe
Archives
- Today
- Total
HD
JAVA 접근장치, 운영체제, 브라우저 확인 본문
반응형
고객의 요청에 의해 접근장치, 운영체제, 브라우저를 확인해서 로그를 남겨 달라는 말에 따로 ClientUtil.class로 빼서 구현을 해보았다.
[pom.xml 기입]
<dependency>
<groupId>com.github.ua-parser</groupId>
<artifactId>uap-java</artifactId>
<version>1.4.3</version>
</dependency>
[소스]
package project.client.util;
import java.io.IOException;
import javax.servlet.http.HttpServletRequest;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ua_parser.Client;
import ua_parser.Parser;
/**
* Client Utility Class
* @Class Name : ClientUtil.java
* @Description :
* @Modification Information
*
* 수정일 수정자 수정내용
* ----------- -------- -------------------
* 2022.02.10. HD 최초생성
*
* @author HD
* @since 2022.02.10
* @version 1.0
*/
public class ClientUtil {
private static final Logger LOG = LoggerFactory.getLogger(ClientUtil.class.getName());
/**
* <pre>
* 접근장치를 반환하는 메소드
* </pre>
* @param request HttpServletRequest
* @return 접근장치 문자열
*/
public static String getAcesEqpmt(HttpServletRequest request) {
String headerStr = request.getHeader( "User-Agent" ).toUpperCase();
String acesEqpmt = "PC";
if ( headerStr.contains( "MOBILE" ) || headerStr.contains( "MOBI" ) ) {
acesEqpmt = "MOBILE";
}
return acesEqpmt;
}
/**
* <pre>
* 운영체제를 반환하는 메소드
* </pre>
* @param request HttpServletRequest
* @return 운영체제 문자열
*/
public static String getOs(HttpServletRequest request) {
String headerStr = request.getHeader( "User-Agent" );
String os = "";
try {
Parser parser = new Parser();
Client client = parser.parse( headerStr );
os = client.os.family;
} catch ( IOException e ) {
LOG.error("ERROR : ",e.getMessage());
}
return os;
}
/**
* <pre>
* 브라우저 이름을 반환하는 메소드
* </pre>
* @param request HttpServletRequest
* @return 브라우저 이름 문자열
*/
public static String getBrowserNm(HttpServletRequest request) {
String headerStr = request.getHeader( "User-Agent" ).toUpperCase();
String browser = "";
if ( headerStr.indexOf("TRIDENT") > -1 || headerStr.indexOf("MSIE") > -1 ) { //IE
if ( headerStr.indexOf("TRIDENT/7") > -1 ) {
browser = "IE 11";
} else if ( headerStr.indexOf("TRIDENT/6") > -1 ) {
browser = "IE 10";
} else if ( headerStr.indexOf("TRIDENT/5") > -1 ) {
browser = "IE 9";
} else if ( headerStr.indexOf("TRIDENT/4") > -1 ) {
browser = "IE 8";
} else if ( headerStr.indexOf("EDG") > -1 || headerStr.indexOf("EDGE") > -1 ) {
browser = "IE Edge";
}
} else if ( headerStr.indexOf("WHALE") > -1 ) { //네이버 WHALE
browser = "Whale";
} else if ( headerStr.indexOf("OPERA") > -1 || headerStr.indexOf("OPR") > -1 ) { //오페라
browser = "Opera";
} else if ( headerStr.indexOf("FIREFOX") > -1 ) { //파이어폭스
browser = "Firefox";
} else if ( headerStr.indexOf("SAFARI") > -1 && headerStr.indexOf("CHROME") == -1 ) { //사파리
browser = "Safari";
} else if ( headerStr.indexOf("CHROME") > -1 ) { //크롬
browser = "Chrome";
} else {
browser = "Other";
}
//LOG.debug("userAgent 확인 ["+userAgent+"]");
//LOG.debug("브라우저/버전 확인 ["+browser+"]");
return browser;
}
}
[참고]
https://github.com/ua-parser/uap-java
반응형
'JAVA' 카테고리의 다른 글
FCM(firebase) 연동 (0) | 2022.11.07 |
---|---|
Java @Scheduled Cron 표현식 (2) | 2022.10.04 |
중복로그인 처리(feat.전자정부) (0) | 2022.01.25 |
[구글 OTP] java (4) | 2021.09.14 |
URL로 첨부파일 다운로드 (0) | 2021.09.01 |
Comments