【ASP.NET Core Web】ユーザーのOSを判定する

ネコニウム研究所

PCを利用したモノづくりに関連する情報や超個人的なナレッジを掲載するブログ

【ASP.NET Core Web】ユーザーのOSを判定する

2024-7-26 | ,

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

まとめ(感想文)

ユーザーの環境によって処理を変えたい時に使えるかもね!