[JAVA] 백엔드(자바) 단에서 사용자가 맥 OS 유저인지 체크 (agent Mac OS 여부 체크)

[JAVA] 백엔드(자바) 단에서 사용자가 맥 OS 유저인지 체크 (agent Mac OS 여부 체크)

사용자의 프론트엔드 환경(운영체제, OS)를 확인하기 위해서는 HttpServletRequest (request) 객체의 User-Agent 값을 확인하면 된다.

User-Agent 값에 “Macintosh” 또는 “Mac OS”라는 문자열이 포함되어 있으면 맥킨토시 사용자인 것으로 판단했다.

    /**
     * request 객체를 통해 Mac OS 사용여부 체크하기
     *
     * @param req
     * @return
     * @throws NullPointerException
     * @throws Exception
     */

    public static boolean checkIsMacOS(HttpServletRequest req) throws NullPointerException, Exception {
        boolean isMacOS = false;
        
        String reqUserAgent = req.getHeader(“User-Agent”);
        if (reqUserAgent != null) {
            reqUserAgent = reqUserAgent.toLowerCase();
            if (reqUserAgent.contains(“macintosh”) || reqUserAgent.contains(“mac os”)) {
                isMacOS = true;
            }
        }
    
        return isMacOS;
    }

참고로 백엔드(자바) 단에서 출력한 User-Agent의 값을 남겨둔다.

(모든 맥과 윈도우 환경이 동일하다는 것은 아니고 하나의 예이다.)

1. 맥(Mac OS)에서 크롬 브라우저를 사용한 경우

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36

2. 윈도우(Windows)에서 크롬 브라우저를 사용한 경우

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36