C#获取本机操作系统,ip,基本信息

 using Microsoft.Win32;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Management;
using System.Net;
using System.Text;
using System.Threading.Tasks;


namespace Demo
{
    public static class LogHelperInfo
    {
        /// <summary>
        /// 获取计算机系统类型
        /// </summary>
        /// <returns></returns>
        public static string GetSystemType()
        {
            RegistryKey rk;
            rk = Registry.LocalMachine.OpenSubKey("Software\\Microsoft\\Windows NT\\CurrentVersion");
            return rk.GetValue("ProductName").ToString();
        }


        /// <summary>
        /// 获取操作系统版本
        /// </summary>
        /// <returns></returns>
        public static string GetosVersion()
        {
            try
            {
                string st = "";
                ManagementClass mc = new ManagementClass("Win32_ComputerSystem");
                ManagementObjectCollection moc = mc.GetInstances();
                foreach (ManagementObject mo in moc)
                {
                    st = mo["SystemType"].ToString();
                }
                moc = null;
                mc = null;
                return st;
            }
            catch
            {
                return "unknow";
            }
            finally
            {
            }
        }


        /// <summary>
        /// 获取操作系统用户名
        /// </summary>
        /// <returns></returns>
        public static string GetosUser()
        {
            return Dns.GetHostName();
        }


        /// <summary>
        /// 获取本机ip地址
        /// </summary>
        public static string GetNetIP()
        {
            string ip = "";
            string hostName = Dns.GetHostName();
            ip = Dns.GetHostEntry(hostName).AddressList.FirstOrDefault(d => d.AddressFamily.ToString().Equals("InterNetwork")).ToString();
            return ip;
        }


        /// <summary>
        /// 获取计算机内存大小
        /// </summary>
        /// <returns></returns>
        public static string GetMemory()
        {
            try
            {


                string st = "";
                ManagementClass mc = new ManagementClass("Win32_ComputerSystem");
                ManagementObjectCollection moc = mc.GetInstances();
                foreach (ManagementObject mo in moc)
                {
                    st = Convert.ToDouble(mo["TotalPhysicalMemory"]).ToString();
                }
                double c = Math.Round(Convert.ToDouble(Convert.ToDouble(st) / 1024 / 1024 / 1024), 2);
                moc = null;
                mc = null;
                return c.ToString() + "GB";
            }
            catch
            {
                return "unknow";
            }
            finally { }
        }
    }
}

猜你喜欢

转载自blog.csdn.net/vs920079469vs/article/details/79016085