(三)PHP解析HTTP_USER_AGENT 获取客户端浏览器以及版本号

各大经典浏览器HTTP_USER_AGENT详细

IE 各个版本典型的userAgent如下: 

  Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0) 

  Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2) 

  Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) 

  Mozilla/4.0 (compatible; MSIE 5.0; Windows NT)

  其中,版本号是MSIE之后的数字。 

 

  Firefox  几个版本的userAgent大致如下: 

  Mozilla/5.0 (Windows; U; Windows NT 5.2) Gecko/2008070208 Firefox/3.0.1 

  Mozilla/5.0 (Windows; U; Windows NT 5.1) Gecko/20070309 Firefox/2.0.0.3 

  Mozilla/5.0 (Windows; U; Windows NT 5.1) Gecko/20070803 Firefox/1.5.0.12  其中,版本号是Firefox之后的数字。 

 

  Opera 典型的userAgent如下: 

  Opera/9.27 (Windows NT 5.2; U; zh-cn) 

  Opera/8.0 (Macintosh; PPC Mac OS X; U; en) 

  Mozilla/5.0 (Macintosh; PPC Mac OS X; U; en) Opera 8.0  

  其中,版本号是靠近Opera的数字。 

 

  Safari 典型的userAgent如下: 

  Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/525.13 (KHTML, like Gecko) Version/3.1 Safari/525.13 

  Mozilla/5.0 (iPhone; U; CPU like Mac OS X) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/4A93 Safari/419.3 

  其版本号是Version之后的数字。 

 

Chrome 的userAgent是: 

Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13  

  其中,版本号在Chrome之后的数字。 

 

 

Navigator 的userAgent是: 

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.12) Gecko/20080219 Firefox/2.0.0.12 Navigator/9.0.0.6

其中,版本号在Navigator之后的数字。

/**
 * 获取客户端浏览器以及版本号
 * @param $agent    //$_SERVER['HTTP_USER_AGENT']
 * @return array[browser]       浏览器名称
 * @return array[browser_ver]   浏览器版本号
 */    
function getClientBrowser($agent = '') {
    $browser = '';
    $browser_ver = '';
    if (preg_match('/OmniWeb\/(v*)([^\s|;]+)/i', $agent, $regs)) {
        $browser = 'OmniWeb';
        $browser_ver = $regs[2];
    }
    if (preg_match('/Netscape([\d]*)\/([^\s]+)/i', $agent, $regs)) {
        $browser = 'Netscape';
        $browser_ver = $regs[2];
    }
    if (preg_match('/safari\/([^\s]+)/i', $agent, $regs)) {
        $browser = 'Safari';
        $browser_ver = $regs[1];
    }
    if (preg_match('/MSIE\s([^\s|;]+)/i', $agent, $regs)) {
        $browser = 'Internet Explorer';
        $browser_ver = $regs[1];
    }
    if (preg_match('/Opera[\s|\/]([^\s]+)/i', $agent, $regs)) {
        $browser = 'Opera';
        $browser_ver = $regs[1];
    }
    if (preg_match('/NetCaptor\s([^\s|;]+)/i', $agent, $regs)) {
        $browser = '(Internet Explorer '.$browser_ver.') NetCaptor';
        $browser_ver = $regs[1];
    }
    if (preg_match('/Maxthon/i', $agent, $regs)) {
        $browser = '(Internet Explorer '.$browser_ver.') Maxthon';
        $browser_ver = '';
    }
    if (preg_match('/360SE/i', $agent, $regs)) {
        $browser = '(Internet Explorer '.$browser_ver.') 360SE';
        $browser_ver = '';
    }
    if (preg_match('/SE 2.x/i', $agent, $regs)) {
        $browser = '(Internet Explorer '.$browser_ver.') 搜狗';
        $browser_ver = '';
    }
    if (preg_match('/FireFox\/([^\s]+)/i', $agent, $regs)) {
        $browser = 'FireFox';
        $browser_ver = $regs[1];
    }
    if (preg_match('/Lynx\/([^\s]+)/i', $agent, $regs)) {
        $browser = 'Lynx';
        $browser_ver = $regs[1];
    }
    if (preg_match('/Chrome\/([^\s]+)/i', $agent, $regs)) {
        $browser = 'Chrome';
        $browser_ver = $regs[1];
    }
    if (preg_match('/MicroMessenger\/([^\s]+)/i', $agent, $regs)) {
        $browser = '微信浏览器';
        $browser_ver = $regs[1];
    }
    if ($browser != '') {
        return ['browser'=>$browser, 'browser_ver'=>$browser_ver];
    } else {
        return ['browser'=>'未知','browser_ver'=> ''];
    }
}

这个参考:http://blog.sina.com.cn/s/blog_68b0cad1010169vr.html

 

其他链接

(一)通过IP获取客户端相关访问信息 https://blog.youkuaiyun.com/weixin_37689230/article/details/82862498

(二)获取客户端操作系统 https://blog.youkuaiyun.com/weixin_37689230/article/details/82862560

(三)获取客户端浏览器以及版本号https://blog.youkuaiyun.com/weixin_37689230/article/details/82862543

(四)获取客户端手机型号 https://blog.youkuaiyun.com/weixin_37689230/article/details/82863036

(五)记录IP和客户端访问信息 https://blog.youkuaiyun.com/weixin_37689230/article/details/82862936

 
### HTTP_USER_AGENT 含义 `HTTP_USER_AGENT` 是 HTTP 请求头的一部分,用于标识发起请求的客户端信息。这通常包含了浏览器名称、版本号以及操作系统的相关信息[^1]。 ### 获取解析 `HTTP_USER_AGENT` 在 PHP 中可以通过超级全局数组 `$_SERVER` 来访问这个变量: ```php $userAgent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'Unknown'; echo htmlspecialchars($userAgent); ``` 这段代码首先检查是否存在 `HTTP_USER_AGENT` 键,如果存在则取出其值;否则设置默认值为 `'Unknown'` 。这样做可以防止因缺少该键而导致未定义索引错误的发生[^3]。 ### 判断浏览器类型 通过分析 `_SERVER["HTTP_USER_AGENT"]` 的内容来识别不同的浏览器及其版本。下面是一个简单的例子展示如何检测特定类型的浏览器: ```php function getBrowser() { global $useragent; if(preg_match('/msie/i', $useragent)) { return "Internet Explorer"; } elseif(preg_match('/firefox/i', $useragent)) { return "Firefox"; } elseif(preg_match('/chrome/i', $useragent)) { return "Chrome"; } elseif(preg_match('/safari/i', $useragent) && !preg_match('/chrome/i', $useragent)){ return "Safari"; } elseif(preg_match('/opera/i', $useragent)) { return "Opera"; } else{ return "Other"; } } $useragent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : ''; $browser = getBrowser(); echo "You are using: ".htmlspecialchars($browser)." browser."; ``` 此函数会根据正则表达式的匹配情况返回相应的浏览器名。 ### 处理潜在的安全风险 当直接使用来自用户的输入数据时需要注意安全问题。对于从 `HTTP_USER_AGENT` 提取的信息,在显示之前应该对其进行适当编码以避免跨站脚本攻击(XSS),如上例中的 `htmlspecialchars()` 函数所示[^2]。 另外,在某些情况下,恶意用户可能会伪造 `User-Agent` 字符串来进行 DDoS 攻击或其他形式的滥用行为。因此可以在服务器端配置 Nginx 或其他 Web 服务器软件来过滤掉可疑的 User-Agent 值,并给予适当的响应措施,比如返回 503 状态码表示服务不可用[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值