웹마스터 팁

프로그램에 사용하기 위해 HTTP_USER_AGENT를 이용한 방문자의 OS와 web browser를 체크하는 함수를 만들어 보았습니다.

HTTP_USER_AGENT에 대한 여러가지 패턴과 정보에 대해 약 1000여개의 HTTP_USER_AGENT 결과를 체크하여 제작 하였습니다.

함수TEST 결과 보기 ->> http://navyism.com/temp

-_-허접한 소스지만.....;;;; 유용하게 쓰시길~


/******************************************************************************
    프로그램개요 : http_user_agent를 이용한 client의 os와 web brower를 체크
    제 작 자     : navyism
    제 작 일     : 2002.3.18
    e-mail       : navyism@navyism.com
    homepage     : http://navyism.com
******************************************************************************/

/////////////////////////////////////os정보를 가져오는 함수
function set_os($os){
global $os_version,$os_name,$array;
$os_version="";

for($i=0;$i $j=$i+1;
if(eregi("$os",$array[$i]) && eregi("^[0-9]{1,2}([.]{1}[0-9]{1,2})*[a-z]{0,1}$",$array[$j])){
$os_version=$array[$j];
}
}
}

/////////////////////////////////////browser정보를 가져오는 함수
function set_br($br){
global $br_version,$br_name,$array;
$br_version="";

for($i=0;$i $j=$i+1;
if(eregi("$br",$array[$i]) && eregi("^[0-9]{1,2}([.]{1}[0-9]{1,2})*[a-z]{0,1}$",$array[$j])){
$br_version=$array[$j];
}
}
}

/////////////////////////////////////os와 browser를 체크하는 함수
function check_agent(){
global $HTTP_USER_AGENT,$os_name,$os_version,$br_version,$br_name,$array;

$temp=$HTTP_USER_AGENT;
$temp=eregi_replace("([ 0-9.])*%","",$temp);
$temp=trim(eregi_replace("-|_|=|+|;"," ",$temp));

$array=split(" ",$temp);

if(eregi("([a-z])+/",$array[0])){$br_version_temp=split("/",$array[0]);}
$br_version_temp=$br_version_temp[1];

if(eregi("Win|Window",$temp)){
$os_name="Windows";

if(ereg("s 3.1|n3.1",$temp)){
$os_version="3.1";
}

if(ereg("s 95|n95",$temp)){
$os_version="95";
}

if(ereg("s 98|n98",$temp)){
$os_version="98";
}

if(ereg("s ME|nME",$temp)){
$os_version="ME";
}

if(ereg("s NT|nNT",$temp)){
$os_version="NT";
}

if(ereg("s NT|nNT",$temp) && eregi("T 5.0| 2000",$temp)){
$os_version="2000";
}

if(ereg("s NT|nNT",$temp) && eregi("T 5.1| XP",$temp)){
$os_version="XP";
}
}

elseif(eregi("Mac PowerPC|PPC",$temp)){
$os_name="Mac PowerPC";
set_os("Mac powerPC");
}

elseif(eregi("Mac",$temp)){
$os_name="Macintosh";
set_os("Mac");
}

elseif(eregi("Linux",$temp)){
$os_name="Linux";
set_os("Linux");
}

elseif(eregi("IRIX",$temp)){
$os_name="IRIX";
set_os("IRIX");
}

elseif(eregi("sunOS",$temp)){
$os_name="sunOS";
set_os("sunOS");
}

elseif(eregi("phone",$temp)){
$os_name="CellPhone";
set_os("phone");
}

else{$os_name="Unknown";$os_version="";}


if(eregi("MSN",$temp)){
$br_name="MSN";
set_br("MSN");
}

elseif(eregi("MSIE",$temp)){
$br_name="MSIE";
set_br("MSIE");
}

elseif(eregi("([){1}[a-z]{1,3}(]){1}",$temp) && eregi("]",$temp)){
$br_name="Netscape";
$br_version=$br_version_temp;
}

elseif(eregi("opera",$temp)){
$br_name="Opera";
set_br("opera");
if(!$br_version){$br_version=$br_version_temp;}
}

elseif(eregi("gec|gecko",$temp)){
$br_name="Gecko";
set_br("Gecko");
if(!$br_version){$br_version=$br_version_temp;}
}

elseif(eregi("MSMB",$temp)){
$br_name="MSMB";
}

else{$br_name="Unknown";}
}


/////////////////////////////////////체크 함수 호출
check_agent();

/////////////////////////////////////출력
echo "
OS : $os_name $os_version

Browser : $br_name $br_version
";
?>
제목 글쓴이 날짜
[추천 팁] 방문자의 os와 browser체크 함수.... [3] navyism 2002.03.18
[추천 팁] setcookie()사용시 header어쩌구 하는 에러날때.... [1] 하얀바다 2002.03.19
[추천 팁] [씽크식 PHP] PHP에대해 아무 지식이 없는 사람이 오해하는것. [3] [ζ]씽크 2002.03.23
[추천 소스] 최신의 인기가요 뽑아오는 PHP프로그램 [3] 제누스 2002.03.28
[추천 소스] 게시판 답글 알고리즘..(서기생각 -_-;;) [2] 서기 2002.04.10
[추천 팁] 웹 브라우저가 한글인지 영문인지(다른 언어인지) 자동 인식하기... [1] 박용구 2002.07.10
[추천 팁] 파일의 최종접근시간과 파일의 수정시간을 알려주는 함수 [2] ssukai 2002.07.10
[추천 팁] 폴더내의 파일중에서 특정정보만 뽑아오기. [2] M2Vis 2002.07.12
[추천 팁] 오에카키 PHP 버전으로 만들기 [19] 소프트맨 2002.08.31
[추천 강의] 플래시로 보는 노프레임 홈 만들기! [63] ROBIN 2002.09.18
[추천 소스] nzeo에 있는 북마크 기능 구현하기(hot key 는 제외) 초허접 강좌 [10] 정승재 2002.10.22
[추천 소스] 특정일로부터 지난날짜 혹은 남은날짜 구하기~ [5] 박은석 2002.10.22
[추천 강의] [설명] 304번 글에 대한 설명입니다. [5] [콜록]토끼군 2002.12.25
[추천 강의] NZEO.COM 에서 쓰는 북마크 구현하기 [5] 東氣號太 2002.12.28
[PHP 동영상강의] 41. 추천사이트(북마크)프로그램 만들기 [4] 서기 2006.02.27
추천해드리는 보안공부 사이트 [3] Dopesoul 2002.10.05
[강력추천!!] 윈도우에서 아파치,MySql,PHP 돌리기! - apmsetup.com [10] 별빛부셔 2003.09.05
윈도우즈용 메일서버 추천- NMail [3] u2em 2004.07.19
추천수와 비추천수를 합친 값을 보여주기 lol €:) 2011.03.11
비회원이 게시글 추천할수있게하는방법 [4] file 토끼매니아 2011.08.03