2014-03-19 from—http://www.codefans.net/articles/1224.shtml?jdfwkey=0tbrk3
- PHP语言、浏览器、操作系统、IP、地理位置、ISP,本PHP类里面有以下几种方法,同时也是用法说明:
$obj = new class_guest_info; $obj->GetLang(); //获取访客语言:简体中文、繁體中文、English。 $obj->GetBrowser(); //获取访客浏览器:MSIE、Firefox、Chrome、Safari、Opera、Other。 $obj->GetOS(); //获取访客操作系统:Windows、MAC、Linux、Unix、BSD、Other。 $obj->GetIP(); //获取访客IP地址。 $obj->GetAdd(); //获取访客地理位置,使用 Baidu 隐藏接口。 $obj->GetIsp(); //获取访客ISP,使用 Baidu 隐藏接口。
001
<?php
002
class
class_guest_info{
003
function
GetLang() {
004
$Lang
=
substr
(
$_SERVER
[
'HTTP_ACCEPT_LANGUAGE'
], 0, 4);
005
//使用substr()截取字符串,从 0 位开始,截取4个字符
006
if
(preg_match(
'/zh-c/i'
,
$Lang
)) {
007
//preg_match()正则表达式匹配函数
008
$Lang
=
'简体中文'
;
009
}
010
elseif
(preg_match(
'/zh/i'
,
$Lang
)) {
011
$Lang
=
'繁體中文'
;
012
}
013
else
{
014
$Lang
=
'English'
;
015
}
016
return
$Lang
;
017
}
018
function
GetBrowser() {
019
$Browser
=
$_SERVER
[
'HTTP_USER_AGENT'
];
020
if
(preg_match(
'/MSIE/i'
,
$Browser
)) {
021
$Browser
=
'MSIE'
;
022
}
023
elseif
(preg_match(
'/Firefox/i'
,
$Browser
)) {
024
$Browser
=
'Firefox'
;
025
}
026
elseif
(preg_match(
'/Chrome/i'
,
$Browser
)) {
027
$Browser
=
'Chrome'
;
028
}
029
elseif
(preg_match(
'/Safari/i'
,
$Browser
)) {
030
$Browser
=
'Safari'
;
031
}
032
elseif
(preg_match(
'/Opera/i'
,
$Browser
)) {
033
$Browser
=
'Opera'
;
034
}
035
else
{
036
$Browser
=
'Other'
;
037
}
038
return
$Browser
;
039
}
040
function
GetOS() {
041
$OS
=
$_SERVER
[
'HTTP_USER_AGENT'
];
042
if
(preg_match(
'/win/i'
,
$OS
)) {
043
$OS
=
'Windows'
;
044
}
045
elseif
(preg_match(
'/mac/i'
,
$OS
)) {
046
$OS
=
'MAC'
;
047
}
048
elseif
(preg_match(
'/linux/i'
,
$OS
)) {
049
$OS
=
'Linux'
;
050
}
051
elseif
(preg_match(
'/unix/i'
,
$OS
)) {
052
$OS
=
'Unix'
;
053
}
054
elseif
(preg_match(
'/bsd/i'
,
$OS
)) {
055
$OS
=
'BSD'
;
056
}
057
else
{
058
$OS
=
'Other'
;
059
}
060
return
$OS
;
061
}
062
function
GetIP() {
063
if
(!emptyempty(
$_SERVER
[
'HTTP_CLIENT_IP'
])) {
064
//如果变量是非空或非零的值,则 empty()返回 FALSE。
065
$IP
=
explode
(
','
,
$_SERVER
[
'HTTP_CLIENT_IP'
]);
066
}
067
elseif
(!emptyempty(
$_SERVER
[
'HTTP_X_FORWARDED_FOR'
])) {
068
$IP
=
explode
(
','
,
$_SERVER
[
'HTTP_X_FORWARDED_FOR'
]);
069
}
070
elseif
(!emptyempty(
$_SERVER
[
'REMOTE_ADDR'
])) {
071
$IP
=
explode
(
','
,
$_SERVER
[
'REMOTE_ADDR'
]);
072
}
073
else
{
074
$IP
[0] =
'None'
;
075
}
076
return
$IP
[0];
077
}
078
private
function
GetAddIsp() {
079
$IP
=
$this
->GetIP();
080
$AddIsp
= mb_convert_encoding(
file_get_contents
(
'http://open.baidu.com/ipsearch/stn=ipjson&wd='
.
$IP
),
'UTF-8'
,
'GBK'
);
081
//mb_convert_encoding() 转换字符编码。
082
if
(preg_match(
'/noresult/i'
,
$AddIsp
)) {
083
$AddIsp
=
'None'
;
084
}
085
else
{
086
$Sta
=
stripos
(
$AddIsp
,
$IP
) +
strlen
(
$IP
) +
strlen
(
'来自'
);
087
$Len
=
stripos
(
$AddIsp
,
'"}'
)-
$Sta
;
088
$AddIsp
=
substr
(
$AddIsp
,
$Sta
,
$Len
);
089
}
090
$AddIsp
=
explode
(
' '
,
$AddIsp
);
091
return
$AddIsp
;
092
}
093
function
GetAdd() {
094
$Add
=
$this
->GetAddIsp();
095
return
$Add
[0];
096
}
097
function
GetIsp() {
098
$Isp
=
$this
->GetAddIsp();
099
if
(
$Isp
[0] !=
'None'
&& isset(
$Isp
[1])) {
100
$Isp
=
$Isp
[1];
101
}
102
else
{
103
$Isp
=
'None'
;
104
}
105
return
$Isp
;
106
}
107
}
108
?>