国产视频app在使用瀏覽器發起的 HTTP 請求中,通常會包含一個識別標識。它名為 User Agent,簡稱 UA。它是一串包含了客戶端基礎信息的字符串。通過它可以方便的獲取客戶端的操作系統,語言,瀏覽器和版本信息。我們可以利用PHP分析這些代碼,來進行用戶訪問信息的識別等

PHP簡單的獲取User Agent信息代碼

echo $_SERVER['HTTP_USER_AGENT'];

PHP獲取訪客操作系統信息

/**  
 * 獲取客戶端操作系統信息,包括win10 
 * @param   null  
 * @return  string   
 */  
<?php
function GetOs() {
    if (!empty($_SERVER['HTTP_USER_AGENT'])) {
        $OS = $_SERVER['HTTP_USER_AGENT'];
        if (preg_match('/win/i', $OS)) {
            $OS = 'Windows';
        } elseif (preg_match('/mac/i', $OS)) {
            $OS = 'MAC';
        } elseif (preg_match('/linux/i', $OS)) {
            $OS = 'Linux';
        } elseif (preg_match('/unix/i', $OS)) {
            $OS = 'Unix';
        } elseif (preg_match('/bsd/i', $OS)) {
            $OS = 'BSD';
        } else {
            $OS = 'Other';
        }
        return $OS;
    } else {
        return "獲取訪客操作系統信息失敗!";
    }
} ?>

以上代碼只能簡單的對User Agent信息中包含的系統信息進行識別,但你也可以加入足夠多的判斷條件,給訪客的系統信息進行識別

PHP獲取瀏覽器信息

<?php
function GetBrowser() {
    if (!empty($_SERVER['HTTP_USER_AGENT'])) {
        $br = $_SERVER['HTTP_USER_AGENT'];
        if (preg_match('/MSIE/i', $br)) {
            $br = 'MSIE';
        } elseif (preg_match('/Firefox/i', $br)) {
            $br = 'Firefox';
        } elseif (preg_match('/Chrome/i', $br)) {
            $br = 'Chrome';
        } elseif (preg_match('/Safari/i', $br)) {
            $br = 'Safari';
        } elseif (preg_match('/Opera/i', $br)) {
            $br = 'Opera';
        } else {
            $br = 'Other';
        }
        return $br;
    } else {
        return "獲取瀏覽器信息失敗!";
    }
} ?>

此代碼只能簡單的對一些主流瀏覽器進行識別,對一些國產的瀏覽器,我們還可以通過加入多個判斷的形式進行識別

PHP獲取客戶的IP地址信息

<?php
//獲取ip
function getip() {
    if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP") , "unknown")) {
        $ip = getenv("HTTP_CLIENT_IP");
    } else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR") , "unknown")) {
        $ip = getenv("HTTP_X_FORWARDED_FOR");
    } else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR") , "unknown")) {
        $ip = getenv("REMOTE_ADDR");
    } else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")) {
        $ip = $_SERVER['REMOTE_ADDR'];
    } else {
        $ip = "unknown";
    }
    return $ip;
}

国产视频app以上代碼只能獲取訪客的IP地址,如果你需要通過IP地址來確定IP所在的物理地址,可以在本博客搜索相關的技術文章。

PHP獲取客戶端的語言

<?php
function GetLang() {
    if (!empty($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
        $lang = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
        $lang = substr($lang, 0, 5);
        if (preg_match("/zh-cn/i", $lang)) {
            $lang = "簡體中文";
        } elseif (preg_match("/zh/i", $lang)) {
            $lang = "繁體中文";
        } else {
            $lang = "English";
        }
        return $lang;
    } else {
        return "獲取瀏覽器語言失敗!";
    }
} ?>

以上就是PHP通過訪客的User Agent信息,來識別訪客的IP地址,瀏覽器,以及系統等信息的代碼,此代碼因為沒有足夠的判斷條件,無法很精確的識別出各種信息。但我們可以通過后期的資料收集,來慢慢的完善它們。

国产视频app注明:代碼來自網絡,如有侵權,請聯系