【ASP.NET Core Web】ユーザーのOSを判定する
2024-7-26 | .NET, ASP.NET Core Web
ASP.NET Core WebでユーザーのOSを判定したい!
概要
今回の記事では、ASP.NET Core WebでアクセスのあったユーザーのOSを判定する手順を掲載する。
仕様書
環境
- .NET 8
手順書
リクエストヘッダーのUser-Agent
からOSを判定する例。
using Microsoft.AspNetCore.Mvc.RazorPages;
namespace tests.Pages
{
public class IndexModel : PageModel
{
private readonly ILogger<IndexModel> _logger;
public IndexModel(ILogger<IndexModel> logger)
{
_logger = logger;
}
public void OnGet()
{
var userAgent = Request.Headers["User-Agent"].ToString();
_logger.LogInformation(userAgent);
if (userAgent.Contains("Windows"))
{
_logger.LogInformation("Windows");
}
else if (userAgent.Contains("Mac"))
{
_logger.LogInformation("Mac");
}
else if (userAgent.Contains("Linux"))
{
_logger.LogInformation("Linux");
}
else
{
_logger.LogInformation("Unknown");
}
}
}
}
Contains
で含まれる文字列でOSを判定してる。
参考としてWindowsのChromeでアクセスするとUser-Agent
は下記のような感じ。
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36
まとめ(感想文)
ユーザーの環境によって処理を変えたい時に使えるかもね!