国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

判斷http 請求來自于手機還是PC

2019-11-08 18:49:00
字體:
來源:轉載
供稿:網友

首先收集了部分客戶端請求頭部信息如下

iphone微信:User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 8_1_2 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12B440 MicroMessenger/6.2.4 NetType/WIFI Language/eniPhone—safariUser-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 8_1_2 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12B440 Safari/600.1.4

 

Android-Chrome

User-Agent:Mozilla/5.0 (linux; Android 4.4.4; HTC D820u Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.89 Mobile Safari/537.36

PC-ChromeUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36PC-FirefoxUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0PC-IEUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko

 

我們需要判斷Http請求是來自手機端還是電腦端,關鍵是取得User-Agent的信息,進行篩選判斷即可。

public static boolean  isMobileDevice(String requestHeader){        /**         * android : 所有android設備         * mac os : iphone ipad         * windows phone:Nokia等windows系統的手機         */        String[] deviceArray = new String[]{"android","mac os","windows phone"};        if(requestHeader == null)            return false;        requestHeader = requestHeader.toLowerCase();        for(int i=0;i<deviceArray.length;i++){            if(requestHeader.indexOf(deviceArray[i])>0){                return true;            }        }        return false;}在controller中獲取http頭信息如下:

String requestHeader = request.getHeader("user-agent");        if(JudgeRequestDeviceUtil.isMobileDevice(requestHeader)){            logger.debug("使用手機瀏覽器");        }else{            logger.debug("使用web瀏覽器");        }php: 判斷是不是微信客戶端的請求function is_in_wx(){    $user_agent = $_SERVER['HTTP_USER_AGENT'];    return false!=strpos($user_agent, 'MicroMessenger');}php: 判斷是不是手機的請求 
function is_mobile_visit(){    // 如果有HTTP_X_WAP_PROFILE則一定是移動設備    if (isset ($_SERVER['HTTP_X_WAP_PROFILE']))    {        return true;    }    // 如果via信息含有wap則一定是移動設備,部分服務商會屏蔽該信息    if (isset ($_SERVER['HTTP_VIA']))    {        // 找不到為flase,否則為true        return stristr($_SERVER['HTTP_VIA'], "wap") ? true : false;    }    // 腦殘法,判斷手機發送的客戶端標志,兼容性有待提高    if (isset ($_SERVER['HTTP_USER_AGENT']))    {        $clientkeyWords = array ('nokia',                'sony',                'eriCSSon',                'mot',                'samsung',                'htc',                'sgh',                'lg',                'sharp',                'sie-',                'philips',                'panasonic',                'alcatel',                'lenovo',                'iphone',                'ipod',                'blackberry',                'meizu',                'android',                'netfront',                'symbian',                'ucweb',                'windowsce',                'palm',                'Operamini',                'operamobi',                'openwave',                'nexusone',                'cldc',                'midp',                'wap',                'mobile'        );        // 從HTTP_USER_AGENT中查找手機瀏覽器的關鍵字        if (preg_match("/(" . implode('|', $clientkeywords) . ")/i", strtolower($_SERVER['HTTP_USER_AGENT'])))        {            return true;        }    }    // 協議法,因為有可能不準確,放到最后判斷    if (isset ($_SERVER['HTTP_ACCEPT']))    {        // 如果只支持wml并且不支持html那一定是移動設備        // 如果支持wml和html但是wml在html之前則是移動設備        if ((strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') !== false) && (strpos($_SERVER['HTTP_ACCEPT'], 'text/html') === false || (strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') < strpos($_SERVER['HTTP_ACCEPT'], 'text/html'))))        {            return true;        }    }    return false;}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 陕西省| 湘阴县| 肃宁县| 茌平县| 沈丘县| 太和县| 都江堰市| 额敏县| 广宁县| 体育| 乌苏市| 中西区| 临汾市| 农安县| 司法| 郯城县| 宁晋县| 彰化县| 讷河市| 观塘区| 新沂市| 丰原市| 锡林浩特市| 筠连县| 武清区| 泗水县| 赤水市| 石景山区| 海城市| 丹江口市| 洛隆县| 商南县| 蓬安县| 桂阳县| 绥棱县| 于田县| 游戏| 无棣县| 乐陵市| 云梦县| 无棣县|