搜尋
首頁後端開發PHP問題php如何取得客戶端訊息

php如何取得客戶端訊息

Sep 30, 2019 am 11:46 AM
php

php如何取得客戶端訊息

用於取得使用者客戶端資訊(推薦學習:PHP影片教學

<?php

class userPCInfo{
//获取客户端浏览器
public static function get_client_browser(){
    $sys = $_SERVER[&#39;HTTP_USER_AGENT&#39;];  //获取用户代理字符串
    if (stripos($sys, "Firefox/") > 0) {
        preg_match("/Firefox\/([^;)]+)+/i", $sys, $b);
        $exp[0] = "Firefox";
        $exp[1] = $b[1];  //获取火狐浏览器的版本号
    } elseif (stripos($sys, "Maxthon") > 0) {
        preg_match("/Maxthon\/([\d\.]+)/", $sys, $aoyou);
        $exp[0] = "傲游";
        $exp[1] = $aoyou[1];
    } elseif (stripos($sys, "MSIE") > 0) {
        preg_match("/MSIE\s+([^;)]+)+/i", $sys, $ie);
        $exp[0] = "IE";
        $exp[1] = $ie[1];  //获取IE的版本号
    } elseif (stripos($sys, "OPR") > 0) {
        preg_match("/OPR\/([\d\.]+)/", $sys, $opera);
        $exp[0] = "Opera";
        $exp[1] = $opera[1];
    } elseif(stripos($sys, "Edge") > 0) {
        //win10 Edge浏览器 添加了chrome内核标记 在判断Chrome之前匹配
        preg_match("/Edge\/([\d\.]+)/", $sys, $Edge);
        $exp[0] = "Edge";
        $exp[1] = $Edge[1];
    } elseif (stripos($sys, "Chrome") > 0) {
        preg_match("/Chrome\/([\d\.]+)/", $sys, $google);
        $exp[0] = "Chrome";
        $exp[1] = $google[1];  //获取google chrome的版本号
    } elseif(stripos($sys,&#39;rv:&#39;)>0 && stripos($sys,&#39;Gecko&#39;)>0){
        preg_match("/rv:([\d\.]+)/", $sys, $IE);
        $exp[0] = "IE";
        $exp[1] = $IE[1];
    }else {
        $exp[0] = "未知浏览器";
        $exp[1] = "";
    }
    return $exp;
}

//获取客户端操作系统
public static function get_client_os(){
    $agent = $_SERVER[&#39;HTTP_USER_AGENT&#39;];
    $os = false;
    if (preg_match(&#39;/win/i&#39;, $agent) && strpos($agent, &#39;95&#39;)){
        $os = &#39;Windows 95&#39;;
    }else if (preg_match(&#39;/win 9x/i&#39;, $agent) && strpos($agent, &#39;4.90&#39;)){
        $os = &#39;Windows ME&#39;;
    }else if (preg_match(&#39;/win/i&#39;, $agent) && preg_match(&#39;/98/i&#39;, $agent)){
        $os = &#39;Windows 98&#39;;
    }else if (preg_match(&#39;/win/i&#39;, $agent) && preg_match(&#39;/nt 6.0/i&#39;, $agent)){
        $os = &#39;Windows Vista&#39;;
    }else if (preg_match(&#39;/win/i&#39;, $agent) && preg_match(&#39;/nt 6.1/i&#39;, $agent)){
        $os = &#39;Windows 7&#39;;
    }else if (preg_match(&#39;/win/i&#39;, $agent) && preg_match(&#39;/nt 6.2/i&#39;, $agent)){
        $os = &#39;Windows 8&#39;;
    }else if(preg_match(&#39;/win/i&#39;, $agent) && preg_match(&#39;/nt 10.0/i&#39;, $agent)){
        $os = &#39;Windows 10&#39;;#添加win10判断
    }else if (preg_match(&#39;/win/i&#39;, $agent) && preg_match(&#39;/nt 5.1/i&#39;, $agent)){
        $os = &#39;Windows XP&#39;;
    }else if (preg_match(&#39;/win/i&#39;, $agent) && preg_match(&#39;/nt 5/i&#39;, $agent)){
        $os = &#39;Windows 2000&#39;;
    }else if (preg_match(&#39;/win/i&#39;, $agent) && preg_match(&#39;/nt/i&#39;, $agent)){
        $os = &#39;Windows NT&#39;;
    }else if (preg_match(&#39;/win/i&#39;, $agent) && preg_match(&#39;/32/i&#39;, $agent)){
        $os = &#39;Windows 32&#39;;
    }else if (preg_match(&#39;/linux/i&#39;, $agent)){
        $os = &#39;Linux&#39;;
    }else if (preg_match(&#39;/unix/i&#39;, $agent)){
        $os = &#39;Unix&#39;;
    }else if (preg_match(&#39;/sun/i&#39;, $agent) && preg_match(&#39;/os/i&#39;, $agent)){
        $os = &#39;SunOS&#39;;
    }else if (preg_match(&#39;/ibm/i&#39;, $agent) && preg_match(&#39;/os/i&#39;, $agent)){
        $os = &#39;IBM OS/2&#39;;
    }else if (preg_match(&#39;/Mac/i&#39;, $agent) && preg_match(&#39;/PC/i&#39;, $agent)){
        $os = &#39;Macintosh&#39;;
    }else if (preg_match(&#39;/PowerPC/i&#39;, $agent)){
        $os = &#39;PowerPC&#39;;
    }else if (preg_match(&#39;/AIX/i&#39;, $agent)){
        $os = &#39;AIX&#39;;
    }else if (preg_match(&#39;/HPUX/i&#39;, $agent)){
        $os = &#39;HPUX&#39;;
    }else if (preg_match(&#39;/NetBSD/i&#39;, $agent)){
        $os = &#39;NetBSD&#39;;
    }else if (preg_match(&#39;/BSD/i&#39;, $agent)){
        $os = &#39;BSD&#39;;
    }else if (preg_match(&#39;/OSF1/i&#39;, $agent)){
        $os = &#39;OSF1&#39;;
    }else if (preg_match(&#39;/IRIX/i&#39;, $agent)){
        $os = &#39;IRIX&#39;;
    }else if (preg_match(&#39;/FreeBSD/i&#39;, $agent)){
        $os = &#39;FreeBSD&#39;;
    }else if (preg_match(&#39;/teleport/i&#39;, $agent)){
        $os = &#39;teleport&#39;;
    }else if (preg_match(&#39;/flashget/i&#39;, $agent)){
        $os = &#39;flashget&#39;;
    }else if (preg_match(&#39;/webzip/i&#39;, $agent)){
        $os = &#39;webzip&#39;;
    }else if (preg_match(&#39;/offline/i&#39;, $agent)){
        $os = &#39;offline&#39;;
    }else{
        $os = &#39;未知操作系统&#39;;
    }
    return $os;
}
//获取ip地址
public static function get_ip() {
    //判断服务器是否允许$_SERVER
    if (isset($_SERVER)) {
        if (isset($_SERVER[&#39;HTTP_X_FORWARDED_FOR&#39;])) {
            $realip = $_SERVER[&#39;HTTP_X_FORWARDED_FOR&#39;];
        } elseif (isset($_SERVER[&#39;HTTP_CLIENT_IP&#39;])) {
            $realip = $_SERVER[&#39;HTTP_CLIENT_IP&#39;];
        } else {
            $realip = $_SERVER[&#39;REMOTE_ADDR&#39;];
        }
    } else {
        //不允许就使用getenv获取
        if (getenv("HTTP_X_FORWARDED_FOR")) {
            $realip = getenv("HTTP_X_FORWARDED_FOR");
        } elseif (getenv("HTTP_CLIENT_IP")) {
            $realip = getenv("HTTP_CLIENT_IP");
        } else {
            $realip = getenv("REMOTE_ADDR");
        }
    }
    return $realip;
}
//获取当前ip所在城市
public static function GetIpLookup($ip = &#39;&#39;){
    if(empty($ip)){
        return &#39;请输入IP地址&#39;;
    }
    $test= &#39;http://ip.taobao.com/service/getIpInfo.php?ip=&#39;.$ip;
    $res = @file_get_contents($test);
    return $res;
}
}

以上是php如何取得客戶端訊息的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!