より多くの種類のブラウザー、または 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