[代码] [PHP]代码
001 | <?php |
002 |
015 | class class_guest_info{ |
016 | function
GetLang()
{ |
017 | $Lang
= substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0,
4); |
018 | //使用substr()截取字符串,从
0 位开始,截取4个字符 |
019 | if
(preg_match('/zh-c/i',$Lang))
{ |
020 | //preg_match()正则表达式匹配函数 |
021 | $Lang
= '简体中文'; |
022 | } |
023 | elseif
(preg_match('/zh/i',$Lang))
{ |
024 | $Lang
= '繁體中文'; |
025 | } |
026 | else
{ |
027 | $Lang
= 'English'; |
028 | } |
029 | return
$Lang; |
030 | } |
031 | function
GetBrowser()
{ |
032 | $Browser
= $_SERVER['HTTP_USER_AGENT']; |
033 | if
(preg_match('/MSIE/i',$Browser))
{ |
034 | $Browser
= 'MSIE'; |
035 | } |
036 | elseif
(preg_match('/Firefox/i',$Browser)) { |
037 | $Browser
= 'Firefox'; |
038 | } |
039 | elseif
(preg_match('/Chrome/i',$Browser))
{ |
040 | $Browser
= 'Chrome'; |
041 | } |
042 | elseif
(preg_match('/Safari/i',$Browser))
{ |
043 | $Browser
= 'Safari'; |
044 | } |
045 | elseif
(preg_match('/Opera/i',$Browser))
{ |
046 | $Browser
= 'Opera'; |
047 | } |
048 | else
{ |
049 | $Browser
= 'Other'; |
050 | } |
051 | return
$Browser; |
052 | } |
053 | function
GetOS()
{ |
054 | $OS
= $_SERVER['HTTP_USER_AGENT']; |
055 | if
(preg_match('/win/i',$OS))
{ |
056 | $OS
= 'Windows'; |
057 | } |
058 | elseif
(preg_match('/mac/i',$OS))
{ |
059 | $OS
= 'MAC'; |
060 | } |
061 | elseif
(preg_match('/linux/i',$OS))
{ |
062 | $OS
= 'Linux'; |
063 | } |
064 | elseif
(preg_match('/unix/i',$OS))
{ |
065 | $OS
= 'Unix'; |
066 | } |
067 | elseif
(preg_match('/bsd/i',$OS))
{ |
068 | $OS
= 'BSD'; |
069 | } |
070 | else
{ |
071 | $OS
= 'Other'; |
072 | } |
073 | return
$OS; |
074 | } |
075 | function
GetIP()
{ |
076 | if
(!emptyempty($_SERVER['HTTP_CLIENT_IP']))
{ |
077 | //如果变量是非空或非零的值,则
empty()返回 FALSE。 |
078 | $IP
= explode(',',$_SERVER['HTTP_CLIENT_IP']); |
079 | } |
080 | elseif
(!emptyempty($_SERVER['HTTP_X_FORWARDED_FOR']))
{ |
081 | $IP
= explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']); |
082 | } |
083 | elseif
(!emptyempty($_SERVER['REMOTE_ADDR']))
{ |
084 | $IP
= explode(',',$_SERVER['REMOTE_ADDR']); |
085 | } |
086 | else
{ |
087 | $IP[0]
= 'None'; |
088 | } |
089 | return
$IP[0]; |
090 | } |
091 | private
function GetAddIsp()
{ |
092 | $IP
= $this->GetIP(); |
093 | $AddIsp
= mb_convert_encoding(file_get_contents('http://open.baidu.com/ipsearch/s?tn=ipjson&wd='.$IP),'UTF-8','GBK'); |
094 | //mb_convert_encoding()
转换字符编码。 |
095 | if
(preg_match('/noresult/i',$AddIsp)) { |
096 | $AddIsp
= 'None'; |
097 | } |
098 | else
{ |
099 | $Sta
= stripos($AddIsp,$IP) + strlen($IP) + strlen('来自'); |
100 | $Len
= stripos($AddIsp,'"}')-$Sta; |
101 | $AddIsp
= substr($AddIsp,$Sta,$Len); |
102 | } |
103 | $AddIsp
= explode(' ',$AddIsp); |
104 | return
$AddIsp; |
105 | } |
106 | function
GetAdd()
{ |
107 | $Add
= $this->GetAddIsp(); |
108 | return
$Add[0]; |
109 | } |
110 | function
GetIsp()
{ |
111 | $Isp
= $this->GetAddIsp(); |
112 | if
($Isp[0] !=
'None' &&
isset($Isp[1])) { |
113 | $Isp
= $Isp[1]; |
114 | } |
115 | else
{ |
116 | $Isp
= 'None'; |
117 | } |
118 | return
$Isp; |
119 | } |
120 | } |
121 | ?> |
本文提供了一个使用PHP实现的功能丰富的代码片段,用于获取用户的语言偏好、浏览器类型、操作系统、IP地址、地区和ISP信息。代码通过HTTP请求头进行解析,并利用正则表达式和函数来精确识别各项信息。
7006

被折叠的 条评论
为什么被折叠?



