您可以通过为更多类型的浏览器添加处理代码来改进此功能,甚至可以为 GoogleBot 等机器人添加处理代码。T-SQL 功能:如何解析 UserAgent 以提取浏览器名称
在某些情况下,例如 Internet Explorer,这非常简单 - 只需查找常规短语 MSIE 6.0 或 MSIE 8.0 的存在。但是对于其他浏览器,这并不简单......因此对于每个浏览器,您必须使用不同的提取技术来提取正确的浏览器名称和版本。
TSQL 函数如下所示:
CREATE FUNCTION [dbo].[GetBrowserName](@UserAgent VARCHAR(200))
RETURNS VARCHAR(30)
AS
BEGIN
DECLARE @BrowserName VARCHAR(30)
SET @BrowserName = CASE
WHEN PATINDEX('%MSIE 8.0%',@UserAgent) > 0
THEN 'Internet Explorer 8.0'
WHEN PATINDEX('%MSIE 7.0%',@UserAgent) > 0
THEN 'Internet Explorer 7.0'
WHEN PATINDEX('%MSIE 6.0%',@UserAgent) > 0
THEN 'Internet Explorer 6.0'
WHEN PATINDEX('%MSIE 5.0%',@UserAgent) > 0
THEN 'Internet Explorer 5.0'
WHEN PATINDEX('%Firefox%',@UserAgent) > 0
THEN 'Mozilla ' + REPLACE(SUBSTRING(@UserAgent,
PATINDEX('%Firefox%',@UserAgent), 100),'/', ' ')
WHEN PATINDEX('%Chrome%',@UserAgent) > 0
THEN 'Google ' + REPLACE(SUBSTRING(@UserAgent,
PATINDEX('%Chrome%',@UserAgent),
PATINDEX('%Safari%',@UserAgent) -
PATINDEX('%Chrome%',@UserAgent)),'/', ' ')
WHEN PATINDEX('%Safari%',@UserAgent) > 0
THEN 'Safari ' + REPLACE(SUBSTRING(@UserAgent,
PATINDEX('%Version%',@UserAgent),
PATINDEX('%Safari%',@UserAgent)-
PATINDEX('%Version%',@UserAgent)),'Version/', '')
WHEN PATINDEX('%Opera%',@UserAgent) > 0
THEN REPLACE(SUBSTRING(@UserAgent,
PATINDEX('%Opera%',@UserAgent),
PATINDEX('%(%',@UserAgent)-2),'/', ' ')
ELSE
'Unknown Browser'
END
RETURN(@BrowserName)
END