개발이야기/PHP

[PHP] HTTP_USER_AGENT 사용해서 브라우저, 디바이스 정보 확인하기

후린개발자 2023. 10. 10.
반응형

아래 소스코드는 PHP의 $_SERVER['HTTP_USER_AGENT'] 변수를 활용해서 클라이언트(사용자)의 기기, 운영체제 및 브라우저 정보를 확인하며 처리하고 있습니다.

 

 

<?php
$userAgent = $_SERVER['HTTP_USER_AGENT'];

// PC와 모바일 기기를 구분하기 위한 정규 표현식 패턴
$patternMobile = '/(iPhone|iPod|iPad|Android|Windows Phone)/i';

if (preg_match($patternMobile, $userAgent)) {
    // 모바일 기기인 경우
    echo "이 기기는 모바일 기기입니다.<br>";

    // 운영체제 확인
    if (strpos($userAgent, 'Android') !== false) {
        echo "운영체제: Android<br>";
    } elseif (strpos($userAgent, 'iPhone') !== false || strpos($userAgent, 'iPad') !== false) {
        echo "운영체제: iOS<br>";
    } elseif (strpos($userAgent, 'Windows Phone') !== false) {
        echo "운영체제: Windows Phone<br>";
    } else {
        echo "운영체제 정보를 확인할 수 없습니다.<br>";
    }
} else {
    // PC인 경우
    echo "이 기기는 PC입니다.<br>";

    // 운영체제 확인
    if (strpos($userAgent, 'Windows') !== false) {
        echo "운영체제: Windows<br>";
    } elseif (strpos($userAgent, 'Macintosh') !== false) {
        echo "운영체제: macOS<br>";
    } elseif (strpos($userAgent, 'Linux') !== false) {
        echo "운영체제: Linux<br>";
    } else {
        echo "운영체제 정보를 확인할 수 없습니다.<br>";
    }
}

// 브라우저 정보 및 버전 확인
if (strpos($userAgent, 'MSIE') !== false || strpos($userAgent, 'Trident') !== false) {
    echo "브라우저: Internet Explorer<br>";
    
    // IE 버전 확인
    if (preg_match('/MSIE (\d+\.\d+)/i', $userAgent, $matches)) {
        $version = $matches[1];
        echo "버전: " . $version . "<br>";
    }
} elseif (strpos($userAgent, 'Edge') !== false) {
    echo "브라우저: Microsoft Edge<br>";
    
    // Edge 버전 확인
    if (preg_match('/Edge\/(\d+\.\d+)/i', $userAgent, $matches)) {
        $version = $matches[1];
        echo "버전: " . $version . "<br>";
    }
} elseif (strpos($userAgent, 'Firefox') !== false) {
    echo "브라우저: Mozilla Firefox<br>";
    
    // Firefox 버전 확인
    if (preg_match('/Firefox\/(\d+\.\d+)/i', $userAgent, $matches)) {
        $version = $matches[1];
        echo "버전: " . $version . "<br>";
    }
} elseif (strpos($userAgent, 'Chrome') !== false) {
    echo "브라우저: Google Chrome<br>";
    
    // Chrome 버전 확인
    if (preg_match('/Chrome\/(\d+\.\d+)/i', $userAgent, $matches)) {
        $version = $matches[1];
        echo "버전: " . $version . "<br>";
    }
} elseif (strpos($userAgent, 'Safari') !== false) {
    echo "브라우저: Apple Safari<br>";
    
    // Safari 버전 확인
    if (preg_match('/Version\/(\d+\.\d+)/i', $userAgent, $matches)) {
        $version = $matches[1];
        echo "버전: " . $version . "<br>";
    }
} else {
    echo "브라우저 정보를 확인할 수 없습니다.<br>";
}
?>

 

 

User Agent 문자열에서 $patternMobile 패턴을 찾아 모바일 기기 여부를 확인하고 특정 문자열로 운영체제를 확인합니다. 브라우저에 대한 정보도 strpos() 함수 및 정규 표현식을 사용합니다.

 

 


소스코드 결과

 

반응형

댓글

💲 추천 글