Flask : PC, Mobile 접속 기기 구분 방법/User agent/사용자 에이전트 구분

User agent, 사용자 에이전트 란?

"사용자를 대신하여 일을 수행하는 소프트웨어 에이전트이다." (출처 : 위키백과)

사전적인 의미는 위와 같습니다. 하지만 포스팅 제목과 같이 간단하게 하면 제가 만든 웹페이지에 접속하는 대상 소프트웨어를 의미합니다. 이번 시간에는 Flask 에서 이러한 사용자 에이전트 값을 얻는 방법에 대하여 알아보겠습니다.

 

Class werkzeug.UserAgent(environ_or_string)

from flask import request

user_agent = request.user_agent.string
print(user_agent)

해당 코드를 실행하면 아래와 같은 결과를 얻을 수 있습니다.

# 결과 1 : PC로 접속했을 때
Mozilla/5.0 (Windows NT 10.0; Win64; x64)	AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36

# 결과 2 : Mobile(Android)로 접속 했을 때
Mozilla/5.0 (Linux; Android 12; SM-G998N Build/SP1A.210812.016; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/105.0.5195.136 Mobile Safari/537.36

 

만약 특정 환경에 대한 제어가 필요하다면, 해당 결과를 받아서 문자열 안에 "Windows"가 포함되어 있는지? 와 같은 if 문을 추가로 사용하면 될 것 같습니다.

 

인식 가능한 플랫폼, 브라우저

https://tedboy.github.io/flask/generated/generated/werkzeug.UserAgent.html

 

werkzeug.UserAgent — Flask API

Represents a user agent. Pass it a WSGI environment or a user agent string and you can inspect some of the details from the user agent string via the attributes. The following attributes exist: string the raw user agent string platform the browser platform

tedboy.github.io

Platform : aix, amiga, android, chromeos, iphone, ipad, macos ...

Browser : chrome, google*, safari, webkit ...