Loading [MathJax]/extensions/TeX/cancel.js

Programming/PHP

PHP :: 클라이언트의 접속 정보 상세하기 확인하기 (device, os, browser)

고고마코드 2021. 12. 7. 17:41
반응형

browscap 의 getBrowser() 활용하여 클라이언트 접속 정보를 확인하는 방법


browscap 을 활용하는 정상적인 방법

  1. php_browscap.ini 또는 lite_php_browscap.ini 파일을 다운로드

  2. 특정 경로에 저장 후 php.ini 를 수정 (browscap = 저장경로/php_browscap.ini)

  3. 아파치 재시작

그러나 지금부터 설명할 방법은 php.ini 를 수정할 수 없는 상황(권한이 없거나 소스 수정만 가능한 경우)에 활용할 수 있는 방법이다.


PHP 접속 정보 상세하게 확인하기

  1. 원하는 경로에 Browscap.php 파일 생성

    Browscap.php
    0.05MB

  2. 원하는 경로에 cache 파일 생성 후 쓰기 권한 부여
    예) cache/browscap\_cache.php

  3. browscap 활용하여 클라이언트 접속 정보 가져오기


    
function get_browscap_info($agent) {
if(!$agent) {
return false;
}
include_once('./Browscap.php');
$browscap = new phpbrowscap\Browscap('./cache');
$browscap->updateMethod = 'cURL';
$browscap->doAutoUpdate = false;
$browscap->cacheFilename = 'browscap_cache.php';
$info = $browscap->getBrowser($agent);
return $info;
}
$userAgent = $_SERVER["HTTP_USER_AGENT"];
$browscap_info = get_browscap_info($userAgent);
foreach($browscap_info as $key => $value) {
echo $key." : ".$value."<br>";
}
/* 출력결과 예시
browser_name : Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.55 Safari/537.36 Edg/96.0.1054.43
browser_name_regex : mozilla/5\.0 \(.*windows nt 10\.0.*\) applewebkit.* \(.*khtml.*like.*gecko.*\) chrome/.* safari/.* edg/(\d)(\d)\..*
browser_name_pattern : zilla/5.0 (*windows nt 10.0*) applewebkit* (*khtml*like*gecko*) chrome/* safari/* edg/96
Parent : Edge 96.0
Platform : Win10
Comment : Edge 96.0
Browser : Edge
Browser_Maker : Microsoft Corporation
Version : 96.0
MajorVer : 96
Device_Type : Desktop
Device_Pointing_Method : mouse
MinorVer : 0
isMobileDevice :
isTablet :
Crawler :
*/

브라우저 정보 : Browser

OS 정보 : Platform

디바이스 정보 : Device_Type

반응형