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

반응형