服务器环境信息【C#代码获取】

服务器环境信息【C#代码获取】


public class ServicesMessage
    {

        [DllImport("kernel32", CharSet = CharSet.Auto, SetLastError = true)]
        internal static extern void GetSystemDirectory(StringBuilder SysDir, int count);
        [DllImport("kernel32", CharSet = CharSet.Auto, SetLastError = true)]
        internal static extern void GetSystemInfo(ref CPU_INFO cpuinfo);
        [DllImport("kernel32", CharSet = CharSet.Auto, SetLastError = true)]
        internal static extern void GlobalMemoryStatus(ref MEMORY_INFO meminfo);

        public static void GetSiteMsgModel()
        {
            int minor;
            //Server.MachineName;//服务器计算机名

            //Request.ServerVariables["LOCAl_ADDR"];//服务器IP地址

            //Request.ServerVariables["Server_Name"];//服务器域名

            //Request.ServerVariables["Server_Port"];//服务器端口

            //Request.ServerVariables["Server_SoftWare"];//服务器IIS版本

            //Request.PhysicalPath;//执行文件绝对路径

            //Request.PhysicalApplicationPath;//站点虚拟目录绝对路径

            //Request.ApplicationPath;//ServerAppPath

            //服务器操作系统
            #region 服务器操作系统
            //string fwqczxt = "";
            //switch (Environment.OSVersion.Platform)
            //    {
            //        case PlatformID.Win32S:
            //            fwqczxt = "Win32S";
            //            break;

            //        case PlatformID.Win32Windows:
            //            minor = Environment.OSVersion.Version.Minor;
            //            switch (minor)
            //            {
            //                case 0:
            //                    fwqczxt = "Microsoft Windows 95";
            //                    break;

            //                case 10:
            //                    fwqczxt = (Environment.OSVersion.Version.Revision.ToString() == "2222A") ? "Microsoft Windows 98 Second Edition" : "Windows 98";
            //                    break;

            //                case 90:
            //                    fwqczxt = "Microsoft Windows Me";
            //                    break;
            //            }
            //            break;

            //        case PlatformID.Win32NT:
            //            switch (Environment.OSVersion.Version.Major)
            //            {
            //                case 3:
            //                    fwqczxt = "Microsoft Windows NT 3.51";
            //                    break;

            //                case 4:
            //                    fwqczxt = "Microsoft Windows NT 4.0";
            //                    break;

            //                case 5:
            //                    switch (Environment.OSVersion.Version.Minor)
            //                    {
            //                        case 0:
            //                            fwqczxt = "Microsoft Windows 2000";
            //                            break;

            //                        case 1:
            //                            fwqczxt = "Microsoft Windows XP";
            //                            break;

            //                        case 2:
            //                            fwqczxt = "Microsoft Windows 2003";
            //                            break;
            //                    }
            //                    break;
            //            }
            //            fwqczxt = "Microsoft Windows NT";
            //            break;

            //        case PlatformID.WinCE:
            //            fwqczxt = "Microsoft Windows CE";
            //            break;
            //    }
            #endregion

            //Environment.ExpandEnvironmentVariables("%SystemRoot%");//服务器操作系统安装目录

            //Environment.ExpandEnvironmentVariables("%ProgramFiles%");//服务器应用程序安装目录

            //CultureInfo.InstalledUICulture.EnglishName;//.NET Framework语言种类

            //.NET Framework 版本
            //object[] objArray = new object[] { Environment.Version.Major, ".", Environment.Version.Minor, ".", Environment.Version.Build, ".", Environment.Version.Revision };
            //string.Concat(objArray);

            //DateTime.Now.ToString();//服务器当前时间

            //服务器上次启动到现在已运行
            #region //服务器上次启动到现在已运行
            //TimeSpan span = new TimeSpan(Environment.TickCount * 0x2710);
            //string[] strArray = new string[8];
            //minor = (int) span.TotalDays;
            //strArray[0] = minor.ToString();
            //strArray[1] = " 天 ";
            //strArray[2] = span.Hours.ToString();
            //strArray[3] = " 小时 ";
            //strArray[4] = span.Minutes.ToString();
            //strArray[5] = " 分 ";
            //strArray[6] = span.Seconds.ToString();
            //strArray[7] = " 秒";
            //string.Concat(strArray);//服务器上次启动到现在已运行
            #endregion

            //string.Join(", ", Directory.GetLogicalDrives()).Replace(Path.DirectorySeparatorChar, ‘ ‘);//逻辑驱动器

            MEMORY_INFO meminfo = new MEMORY_INFO();
            //GlobalMemoryStatus(ref meminfo);
            //minor = (int) (meminfo.dwTotalPhys / 0x100000);
            //minor.ToString();//物理内存总数MB

            //minor = (int) (meminfo.dwAvailPhys / 0x100000);
            //minor.ToString();//可用物理内存MB

            //meminfo.dwMemoryLoad.ToString();//正使用的内存%

            //minor = (int) (meminfo.dwTotalPageFile / 0x100000);
            //minor.ToString();//交换文件大小MB

            //minor = (int) (meminfo.dwAvailPageFile / 0x100000);
            //minor.ToString();//交换文件可用大小MB

            //minor = (int) (meminfo.dwTotalVirtual / 0x100000);
            //minor.ToString();//总虚拟内存MB

            //((int) (meminfo.dwAvailVirtual / 0x100000)).ToString();//剩余虚拟内存MB

            CPU_INFO cpuinfo = new CPU_INFO();
            //GetSystemInfo(ref cpuinfo);
            //cpuinfo.dwNumberOfProcessors.ToString();//CPU 数目

            //Environment.ExpandEnvironmentVariables("%PROCESSOR_IDENTIFIER%");//CPU 标识

            //cpuinfo.dwProcessorType.ToString();//CPU 类型

            //cpuinfo.dwProcessorLevel.ToString();//CPU 等级

            //cpuinfo.dwOemId.ToString();//CPU OEM ID

            //cpuinfo.dwPageSize.ToString();//CPU 页面大小

        }

        // Nested Types
        [StructLayout(LayoutKind.Sequential)]
        public struct CPU_INFO
        {
            public uint dwOemId;
            public uint dwPageSize;
            public uint lpMinimumApplicationAddress;
            public uint lpMaximumApplicationAddress;
            public uint dwActiveProcessorMask;
            public uint dwNumberOfProcessors;
            public uint dwProcessorType;
            public uint dwAllocationGranularity;
            public uint dwProcessorLevel;
            public uint dwProcessorRevision;
        }

        [StructLayout(LayoutKind.Sequential)]
        public struct MEMORY_INFO
        {
            public uint dwLength;
            public uint dwMemoryLoad;
            public uint dwTotalPhys;
            public uint dwAvailPhys;
            public uint dwTotalPageFile;
            public uint dwAvailPageFile;
            public uint dwTotalVirtual;
            public uint dwAvailVirtual;
        }

    }

上面代码中的Request是请求上下文中的Request。

时间比较紧,没有整理的更清晰。

最终效果如下图(只取出部分展示):

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-12 02:26:14

服务器环境信息【C#代码获取】的相关文章

PHP获取服务器环境信息

PHP获取服务器环境信息 PHP的php_uname() 函数 和$_SERVER(服务器和执行环境信息) echo '服务器版本和虚拟主机名的字符串'.$_SERVER['SERVER_SIGNATURE']; // 如: Apache/2.4.23 (Win64) PHP/5.6.25 Server at 127.0.0.1 Port 80 echo '操作系统为'.php_uname('s'); echo '操作系统为'.PHP_OS; echo 'PHP版本为'.PHP_VERSION;

服务器主逻辑代码的重构

不知道前主程是处于什么目的,总之我接手这套程序的时候,出现了超级多的问题,也发现了超级多的问题. 比如说吧,接受网络消息逻辑是线程独立的,而发送消息给客户端缺阻塞在了逻辑线程里面:原本可以放在一个进程里面处理的逻辑,却分散在了四个进程里面去处理,导致我完成一个功能,大部分时间要话费了进程之间的玩家信息的同步上面,在我无法忍受的情况下,我终于是用NIO将网络底层从新写了,而且将四个进程合并,但是在很多逻辑上还是尽量保持了和原逻辑处理的兼容! 先说说这个重构的底层吧! 我们看下最重要的ClientH

C# 实现访问FTP服务器下载文件,获取文件夹信息小记

最近因为要开发广告制作工具,自动生成广告流,需要获取第三方服务器上的文件资源,经过摸索,从这次经历中记录下. FtpWebRequest reqFtp; WebResponse response = null; //获取文件夹信息 reqFtp = (FtpWebRequest)WebRequest.Create(this.ftp);//ftp://IP:port/文件夹名1/文件夹名2/.../文件夹名 reqFtp.UseBinary = true; reqFtp.KeepAlive = f

神奇的Grails:自关联的树状Domain一行代码获取所有子节点

见证Groovy/Grails的神奇时刻到了,你相信吗?用一行代码就可以获取树状结构中某节点下的所有全部子节点!注意:这个树是无深度限制的.无深度限制这点很重要,如果有限深度的树,那我们也很容易通过层级编码用“Like 001%”方式实现(维护编码也是一个有挑战性活).我们以一个非常常见的“类别”Domain为例,大类分小类,小类再细分,典型的树形结构,看看Grails是如何以简洁的语法表达的,体验Groovy语法的神奇! class Group{ String name static hasM

Android通过代码获取View

View view = LayoutInflater.from(mContext).inflate(R.layout.song_item_adapter, null); LayoutInflater inflater = (LayoutInflater)context.getSystemService       Context.LAYOUT_INFLATER_SERVICE); View view = inflater.inflate(R.layout.hello,null); Android

【Webhooks】使用Git的Webhooks进行服务器自动部署代码

使用Git的Webhooks进行服务器自动部署代码 本文项目地址 https://github.com/diandianxiyu/PageBlog/blob/master/%E4%BD%BF%E7%94%A8Git%E7%9A%84Webhooks%E8%BF%9B%E8%A1%8C%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%87%AA%E5%8A%A8%E9%83%A8%E7%BD%B2%E4%BB%A3%E7%A0%81.md 如有错误,请指正~ 前言 之前一直想做自动化运

如何使用Java代码获取文件、文件流或字符串的编码方式

今天通过网络资源研究了一下如何使用Java代码获取文件.文件流或字符串的编码方式,现将代码与大家分享: package com.ghj.packageoftool; import info.monitorenter.cpdetector.io.ASCIIDetector; import info.monitorenter.cpdetector.io.ByteOrderMarkDetector; import info.monitorenter.cpdetector.io.CodepageDete

SVN将一台服务器上的代码迁移到另一台服务器上

由于我们出差,需要把svn服务器上的代码同步到我电脑上,自己各种百度折腾了快一天才弄好,下面来分享下我的具体思路和操作步骤.有2种方式:第一种方式:直接将本地自己dowm下来的代码导入到本地svn服务器上.(缺陷是:没有把版本号同步上来,这种领导说不行,也不建议用这种方式)第二种方式:操作原始svn服务器,将原始svn服务器上需要导出的仓库进行备份,文件以dump的方式呈现.(这种方式更合适) 备份思路是:第一步:将准备要迁移的仓库导出 svnadmin dump第二步:在目标服务器上创建新的仓

Android简易实战教程--第十二话《代码获取手机总运行内存的大小》

手机RAM存储,类似于电脑的内存.这一篇,对通过代码获取手机总内存大小做详细介绍. 首先,定义一个engine类,这个类功能就是获取进程信息,包括运行的程序个数,系统总内存,系统剩余总内存.本篇先完成获取总内存. 代码如下: public class TaskManagerEngine { //获取总内存大小 public static long getTotalMemorySize(Context context){ long size = 0; //获取ActivityManager管理,要