| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- using System.Diagnostics;
- using bitforum.Models;
- using Microsoft.AspNetCore.Authorization;
- using Microsoft.AspNetCore.Mvc;
- using Microsoft.Extensions.Hosting;
- using System.Runtime.InteropServices;
- using System.Management;
- namespace bitforum.Controllers
- {
- [Authorize]
- [Route("Setting")]
- public class SettingController : Controller
- {
- private readonly ILogger<HomeController> _logger;
- private readonly IHostEnvironment _env;
- public SettingController(ILogger<HomeController> logger, IHostEnvironment env)
- {
- _logger = logger;
- _env = env;
- }
- [HttpGet("Server")]
- public IActionResult Server()
- {
- var process = Process.GetCurrentProcess();
- var info = new
- {
- // 앱, 호스트(Host) 관련
- EnvironmentName = _env.EnvironmentName,
- ContentRootPath = _env.ContentRootPath,
- ApplicationName = _env.ApplicationName,
- // OS, Framework 관련
- OSDescription = RuntimeInformation.OSDescription,
- OSArchitecture = RuntimeInformation.OSArchitecture.ToString(),
- FrameworkDescription = RuntimeInformation.FrameworkDescription,
- ProcessArchitecture = RuntimeInformation.ProcessArchitecture.ToString(),
- WorkingSet = (process.WorkingSet64 / 1048576), // 물리 메모리 사용량(바이트)
- TotalCpuTime = process.TotalProcessorTime, // 프로세스 실행 시간
- // 시스템(환경변수) 관련
- MachineName = Environment.MachineName,
- CurrentDirectory = Environment.CurrentDirectory,
- SystemDirectory = Environment.SystemDirectory,
- Is64BitOperatingSystem = Environment.Is64BitOperatingSystem,
- Is64BitProcess = Environment.Is64BitProcess,
- ProcessorCount = Environment.ProcessorCount,
- // 시작 시각 등
- TickCount = TimeSpan.FromMicroseconds(Environment.TickCount).ToString(), // 시스템 시작 후 경과 시간(밀리초)
- };
- // CPU 정보
- ViewBag.cpu = new ManagementObjectSearcher("select * from Win32_Processor").Get();
- // 메모리 정보
- ViewBag.memory = new ManagementObjectSearcher("select * from Win32_MemoryDevice").Get();
- // 디스크 정보
- ViewBag.disk = new ManagementObjectSearcher("select * from Win32_DiskDrive").Get();
- ViewBag.Info = info;
- return View();
- }
- [HttpGet("Envs")]
- public IActionResult Envs()
- {
- ViewBag.EnvVars = Environment.GetEnvironmentVariables(); ;
- return View();
- }
- [HttpGet("Basic")]
- public IActionResult Basic()
- {
- return View();
- }
- [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
- public IActionResult Error()
- {
- return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
- }
- }
- }
|