asp.net
c#
管理员登录站点后,需要查看服务器的CPU,内存等系统资源信息,而且要实时的。有点像任务管理器里面的CPU,内存信息,需要动态的。这样的模块怎么来设计?有没有可以借鉴的,谢谢!
c#
管理员登录站点后,需要查看服务器的CPU,内存等系统资源信息,而且要实时的。有点像任务管理器里面的CPU,内存信息,需要动态的。这样的模块怎么来设计?有没有可以借鉴的,谢谢!
解决方案 »
- ext 的Ext.Ajax.request 怎么实现 返回的值赋给全局变量?
- ASP.NET gridview方面的问题
- 网页问题
- 老出错:在 IIS 中没有将虚拟目录作为应用程序进行配置
- 就10分了~~~聊天室的滚屏效果怎么做的啊?急~~~~```
- ASP.NET实现虚拟二级域名分配
- 我请求帮助,急急急!!!!
- 关于响应RadioButtonList的SelectIndexChange事件,用JavaSript如何相应?
- DataGrid中如果有一个单元格中数据很长
- 关于在DataGrid中删除数据的问题
- 跪求 二维数组做Repeater数据源方法(急!急!急!)
- 做页面兼容问题,高手进~~
int RAMTotal = 0;
SelectQuery RAMQuery = new SelectQuery("Win32_LogicalMemoryConfiguration");
ManagementObjectSearcher RAMSearch = new ManagementObjectSearcher(RAMQuery);
foreach (ManagementObject RAMInfo in RAMSearch.Get())
{
RAMTotal += Convert.ToInt32(RAMInfo["TotalPhysicalMemory"].ToString().Trim()) / 1024;
}
txt_RAM.Text = RAMSize(Convert.ToString(RAMTotal));
/**************************************************
* 函数名称:GetCPUFrequency()
* 功能说明:获取CPU频率
* 参 数:
* 使用示列:
* Response.Write(EC.CpuInfoObject.GetCPUFrequency());
************************************************/
///
/// 获取CPU频率
///
/// 整型cpu频率
public static int GetCPUFrequency()
{
RegistryKey rk = Registry.LocalMachine.OpenSubKey(@"HARDWARE\DESCRIPTION\System\CentralProcessor\0"); object obj = rk.GetValue("~MHz");
int CPUFrequency = (int)obj; return CPUFrequency;
}
#endregion
using System.Management;
namespace Soyee.Comm
{
/// <summary>
/// Computer Information
/// </summary>
public class Computer
{
public string CpuID;
public string MacAddress;
public string DiskID;
public string IpAddress;
public string LoginUserName;
public string ComputerName;
public string SystemType;
public string TotalPhysicalMemory; //单位:M
private static Computer _instance;
public static Computer Instance()
{
if (_instance == null)
_instance = new Computer();
return _instance;
}
public Computer()
{
CpuID=GetCpuID();
MacAddress=GetMacAddress();
DiskID=GetDiskID();
IpAddress=GetIPAddress();
LoginUserName=GetUserName();
SystemType=GetSystemType();
TotalPhysicalMemory=GetTotalPhysicalMemory();
ComputerName=GetComputerName();
}
string GetCpuID()
{
try
{
//获取CPU序列号代码
string cpuInfo = "";//cpu序列号
ManagementClass mc = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = mc.GetInstances();
foreach(ManagementObject mo in moc)
{
cpuInfo = mo.Properties["ProcessorId"].Value.ToString();
}
moc=null;
mc=null;
return cpuInfo;
}
catch
{
return "unknow";
}
finally
{
}
}
string GetMacAddress()
{
try
{
//获取网卡硬件地址
string mac="";
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
foreach(ManagementObject mo in moc)
{
if((bool)mo["IPEnabled"] == true)
{
mac=mo["MacAddress"].ToString();
break;
}
}
moc=null;
mc=null;
return mac;
}
catch
{
return "unknow";
}
finally
{
}
}
string GetIPAddress()
{
try
{
//获取IP地址
string st="";
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
foreach(ManagementObject mo in moc)
{
if((bool)mo["IPEnabled"] == true)
{
//st=mo["IpAddress"].ToString();
System.Array ar;
ar=(System.Array)(mo.Properties["IpAddress"].Value);
st=ar.GetValue(0).ToString();
break;
}
}
moc=null;
mc=null;
return st;
}
catch
{
return "unknow";
}
finally
{
}
}
string GetDiskID()
{
try
{
//获取硬盘ID
String HDid="";
ManagementClass mc = new ManagementClass("Win32_DiskDrive");
ManagementObjectCollection moc = mc.GetInstances();
foreach(ManagementObject mo in moc)
{
HDid = (string)mo.Properties["Model"].Value;
}
moc=null;
mc=null;
return HDid;
}
catch
{
return "unknow";
}
finally
{
}
} /// <summary>
/// 操作系统的登录用户名
/// </summary>
/// <returns></returns>
string GetUserName()
{
try
{
string st="";
ManagementClass mc = new ManagementClass("Win32_ComputerSystem");
ManagementObjectCollection moc = mc.GetInstances();
foreach(ManagementObject mo in moc)
{
st=mo["UserName"].ToString();
}
moc=null;
mc=null;
return st;
}
catch
{
return "unknow";
}
finally
{
}
}
/// <summary>
/// PC类型
/// </summary>
/// <returns></returns>
string GetSystemType()
{
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>
string GetTotalPhysicalMemory()
{
try
{
string st="";
ManagementClass mc = new ManagementClass("Win32_ComputerSystem");
ManagementObjectCollection moc = mc.GetInstances();
foreach(ManagementObject mo in moc)
{
st=mo["TotalPhysicalMemory"].ToString();
}
moc=null;
mc=null;
return st;
}
catch
{
return "unknow";
}
finally
{
}
}
/// <summary>
///
/// </summary>
/// <returns></returns>
string GetComputerName()
{
try
{
return System.Environment.GetEnvironmentVariable("ComputerName");
}
catch
{
return "unknow";
}
finally
{
}
}
}
}
贴不出来的,这个论坛只能贴8000个字符的。
<tr>
<th class="bg_tr" align="left" colspan="2" height="25">
系统信息统计
</th>
</tr>
<tr>
<td class="td_bg" width="50%" height="23">
服务器名称:<asp:Label ID="servername" runat="server"></asp:Label>
</td>
<td class="td_bg" width="50%">
服务器操作系统:<asp:Label ID="serverms" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td class="td_bg" width="50%" height="23">
服务器IP地址:<asp:Label ID="serverip" runat="server"></asp:Label>
</td>
<td class="td_bg" width="50%">
服务器域名:
<asp:Label ID="server_name" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td class="td_bg" width="50%" height="23">
服务器IIS版本:<asp:Label ID="serversoft" runat="server"></asp:Label>
</td>
<td class="td_bg" width="50%">
.NET解释引擎版本:<asp:Label ID="servernet" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td class="td_bg" width="50%" height="23">
HTTPS:<asp:Label ID="serverhttps" runat="server"></asp:Label>
</td>
<td class="td_bg" width="50%">
HTTP访问端口:<asp:Label ID="serverport" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td class="td_bg" width="50%" height="23">
服务端脚本执行超时:<asp:Label ID="serverout" runat="server"></asp:Label>
</td>
<td class="td_bg" width="50%">
服务器现在时间:<asp:Label ID="servertime" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td class="td_bg" width="50%" height="23">
AspNet内存占用:<asp:Label ID="aspnetn" runat="server"></asp:Label>
</td>
<td class="td_bg" width="50%">
AspNetCPU时间:<asp:Label ID="aspnetcpu" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td class="td_bg" width="50%" height="23">
正在使用内存:
<asp:Label ID="LbdwMemoryLoad" runat="server"></asp:Label>
</td>
<td class="td_bg" width="50%">
共有物理内存:<asp:Label ID="LbdwTotalPhys" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td class="td_bg" width="50%" height="23">
剩余物理内存:<asp:Label ID="LbdwAvailPhys" runat="server"></asp:Label>
</td>
<td class="td_bg" width="50%">
交换文件:<asp:Label ID="LbdwTotalPageFile" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td class="td_bg" width="50%" height="23">
网站Session总数:<asp:Label ID="servers" runat="server"></asp:Label>
</td>
<td class="td_bg" width="50%">
网站Application总数:<asp:Label ID="servera" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td class="td_bg" width="50%" height="23">
网站目录绝对路径:<asp:Label ID="serverppath" runat="server"></asp:Label>
</td>
<td class="td_bg" width="50%">
执行文件绝对路径:<asp:Label ID="servernpath" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td class="td_bg" width="50%" height="23">
CPU类型:<asp:Label ID="cputype" runat="server"></asp:Label>
</td>
<td class="td_bg" width="50%">
Access数据库:<asp:Label ID="serveraccess" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td class="td_bg" width="50%" height="23">
CPU数:<asp:Label ID="cpuc" runat="server"></asp:Label>
</td>
<td class="td_bg" width="50%">
服务器所在时区:<asp:Label ID="serverarea" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td class="td_bg" width="50%" height="23">
开机运行时长:<asp:Label ID="serverstart" runat="server"></asp:Label>小时
</td>
<td class="td_bg" width="50%">
进程开始时间:<asp:Label ID="prstart" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td class="td_bg" width="50%" height="23">
剩余交换文件<asp:Label ID="LbdwAvailPageFile" runat="server"></asp:Label>
</td>
<td class="td_bg" width="50%">
总虚拟内存<asp:Label ID="LbdwTotalVirtual" runat="server"></asp:Label>
</td>
</tr>
</table>
[DllImport("kernel32")]
public static extern void GlobalMemoryStatus(ref MEMORY_INFO meminfo); //定义内存的信息结构
[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;
}
protected void Page_Load(object sender, EventArgs e)
{
Response.Expires = 0;
Response.CacheControl = "no-cache"; if (!(IsPostBack))
{
TimeSpan stime = DateTime.Now.TimeOfDay;
servername.Text = Server.MachineName;
serverms.Text = Environment.OSVersion.ToString();
serverip.Text = Request.ServerVariables["LOCAL_ADDR"];
server_name.Text = Request.ServerVariables["http_host"];
serversoft.Text = Request.ServerVariables["server_software"];
servernet.Text = Environment.Version.Major + "." + Environment.Version.Minor + "." + Environment.Version.Build + "." + Environment.Version.Revision;
serverhttps.Text = Request.ServerVariables["HTTPS"];
serverport.Text = Request.ServerVariables["server_port"];
serverout.Text = Server.ScriptTimeout.ToString();
servertime.Text = DateTime.Now.ToString();
serverarea.Text = (DateTime.Now - DateTime.UtcNow).TotalHours > 0 ? "+" + (DateTime.Now - DateTime.UtcNow).TotalHours.ToString() : (DateTime.Now - DateTime.UtcNow).TotalHours.ToString();
try
{
aspnetn.Text = (System.Diagnostics.Process.GetCurrentProcess().WorkingSet / 1048576).ToString("N2") + " MB";
}
catch
{
aspnetn.Text = "系统拒绝提供。";
}
try
{
aspnetcpu.Text = (System.Diagnostics.Process.GetCurrentProcess().TotalProcessorTime).TotalSeconds.ToString("N0") + " 秒";
}
catch
{
aspnetcpu.Text = "系统拒绝提供。";
}
serverstart.Text = (System.Environment.TickCount / 3600000).ToString("N2");
try
{
prstart.Text = System.Diagnostics.Process.GetCurrentProcess().StartTime.ToString();
}
catch
{
prstart.Text = "系统拒绝提供。";
}
cpuc.Text = Environment.GetEnvironmentVariable("NUMBER_OF_PROCESSORS");
cputype.Text = Environment.GetEnvironmentVariable("PROCESSOR_IDENTIFIER"); //调用GlobalMemoryStatus函数获取内存的相关信息
MEMORY_INFO MemInfo;
MemInfo = new MEMORY_INFO();
GlobalMemoryStatus(ref MemInfo);
LbdwMemoryLoad.Text = MemInfo.dwMemoryLoad + " %";
LbdwTotalPhys.Text = dFileSize(MemInfo.dwTotalPhys);
LbdwAvailPhys.Text = dFileSize(MemInfo.dwAvailPhys);
LbdwTotalPageFile.Text = dFileSize(MemInfo.dwTotalPageFile);
LbdwAvailPageFile.Text = dFileSize(MemInfo.dwAvailPageFile);
LbdwTotalVirtual.Text = dFileSize(MemInfo.dwTotalVirtual);
serverppath.Text = Request.ServerVariables["APPL_PHYSICAL_PATH"];
servernpath.Text = Request.ServerVariables["path_translated"];
servers.Text = Session.Contents.Count.ToString();
servera.Text = Application.Contents.Count.ToString();
TimeSpan etime = DateTime.Now.TimeOfDay;
TimeSpan t = etime.Subtract(stime);
runtime.Text = t.TotalMilliseconds.ToString();
}
}
<tr>
<th class="bg_tr" align="left" colspan="2" height="25">
系统信息统计
</th>
</tr>
<tr>
<td class="td_bg" width="50%" height="23">
服务器名称:<asp:Label ID="servername" runat="server"></asp:Label>
</td>
<td class="td_bg" width="50%">
服务器操作系统:<asp:Label ID="serverms" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td class="td_bg" width="50%" height="23">
服务器IP地址:<asp:Label ID="serverip" runat="server"></asp:Label>
</td>
<td class="td_bg" width="50%">
服务器域名:
<asp:Label ID="server_name" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td class="td_bg" width="50%" height="23">
服务器IIS版本:<asp:Label ID="serversoft" runat="server"></asp:Label>
</td>
<td class="td_bg" width="50%">
.NET解释引擎版本:<asp:Label ID="servernet" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td class="td_bg" width="50%" height="23">
HTTPS:<asp:Label ID="serverhttps" runat="server"></asp:Label>
</td>
<td class="td_bg" width="50%">
HTTP访问端口:<asp:Label ID="serverport" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td class="td_bg" width="50%" height="23">
服务端脚本执行超时:<asp:Label ID="serverout" runat="server"></asp:Label>
</td>
<td class="td_bg" width="50%">
服务器现在时间:<asp:Label ID="servertime" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td class="td_bg" width="50%" height="23">
AspNet内存占用:<asp:Label ID="aspnetn" runat="server"></asp:Label>
</td>
<td class="td_bg" width="50%">
AspNetCPU时间:<asp:Label ID="aspnetcpu" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td class="td_bg" width="50%" height="23">
正在使用内存:
<asp:Label ID="LbdwMemoryLoad" runat="server"></asp:Label>
</td>
<td class="td_bg" width="50%">
共有物理内存:<asp:Label ID="LbdwTotalPhys" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td class="td_bg" width="50%" height="23">
剩余物理内存:<asp:Label ID="LbdwAvailPhys" runat="server"></asp:Label>
</td>
<td class="td_bg" width="50%">
交换文件:<asp:Label ID="LbdwTotalPageFile" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td class="td_bg" width="50%" height="23">
网站Session总数:<asp:Label ID="servers" runat="server"></asp:Label>
</td>
<td class="td_bg" width="50%">
网站Application总数:<asp:Label ID="servera" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td class="td_bg" width="50%" height="23">
网站目录绝对路径:<asp:Label ID="serverppath" runat="server"></asp:Label>
</td>
<td class="td_bg" width="50%">
执行文件绝对路径:<asp:Label ID="servernpath" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td class="td_bg" width="50%" height="23">
CPU类型:<asp:Label ID="cputype" runat="server"></asp:Label>
</td>
<td class="td_bg" width="50%">
Access数据库:<asp:Label ID="serveraccess" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td class="td_bg" width="50%" height="23">
CPU数:<asp:Label ID="cpuc" runat="server"></asp:Label>
</td>
<td class="td_bg" width="50%">
服务器所在时区:<asp:Label ID="serverarea" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td class="td_bg" width="50%" height="23">
开机运行时长:<asp:Label ID="serverstart" runat="server"></asp:Label>小时
</td>
<td class="td_bg" width="50%">
进程开始时间:<asp:Label ID="prstart" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td class="td_bg" width="50%" height="23">
剩余交换文件<asp:Label ID="LbdwAvailPageFile" runat="server"></asp:Label>
</td>
<td class="td_bg" width="50%">
总虚拟内存<asp:Label ID="LbdwTotalVirtual" runat="server"></asp:Label>
</td>
</tr>
</table>
[DllImport("kernel32")]
public static extern void GlobalMemoryStatus(ref MEMORY_INFO meminfo); //定义内存的信息结构
[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;
}
protected void Page_Load(object sender, EventArgs e)
{
Response.Expires = 0;
Response.CacheControl = "no-cache"; if (!(IsPostBack))
{
TimeSpan stime = DateTime.Now.TimeOfDay;
servername.Text = Server.MachineName;
serverms.Text = Environment.OSVersion.ToString();
serverip.Text = Request.ServerVariables["LOCAL_ADDR"];
server_name.Text = Request.ServerVariables["http_host"];
serversoft.Text = Request.ServerVariables["server_software"];
servernet.Text = Environment.Version.Major + "." + Environment.Version.Minor + "." + Environment.Version.Build + "." + Environment.Version.Revision;
serverhttps.Text = Request.ServerVariables["HTTPS"];
serverport.Text = Request.ServerVariables["server_port"];
serverout.Text = Server.ScriptTimeout.ToString();
servertime.Text = DateTime.Now.ToString();
serverarea.Text = (DateTime.Now - DateTime.UtcNow).TotalHours > 0 ? "+" + (DateTime.Now - DateTime.UtcNow).TotalHours.ToString() : (DateTime.Now - DateTime.UtcNow).TotalHours.ToString();
try
{
aspnetn.Text = (System.Diagnostics.Process.GetCurrentProcess().WorkingSet / 1048576).ToString("N2") + " MB";
}
catch
{
aspnetn.Text = "系统拒绝提供。";
}
try
{
aspnetcpu.Text = (System.Diagnostics.Process.GetCurrentProcess().TotalProcessorTime).TotalSeconds.ToString("N0") + " 秒";
}
catch
{
aspnetcpu.Text = "系统拒绝提供。";
}
serverstart.Text = (System.Environment.TickCount / 3600000).ToString("N2");
try
{
prstart.Text = System.Diagnostics.Process.GetCurrentProcess().StartTime.ToString();
}
catch
{
prstart.Text = "系统拒绝提供。";
}
cpuc.Text = Environment.GetEnvironmentVariable("NUMBER_OF_PROCESSORS");
cputype.Text = Environment.GetEnvironmentVariable("PROCESSOR_IDENTIFIER"); //调用GlobalMemoryStatus函数获取内存的相关信息
MEMORY_INFO MemInfo;
MemInfo = new MEMORY_INFO();
GlobalMemoryStatus(ref MemInfo);
LbdwMemoryLoad.Text = MemInfo.dwMemoryLoad + " %";
LbdwTotalPhys.Text = dFileSize(MemInfo.dwTotalPhys);
LbdwAvailPhys.Text = dFileSize(MemInfo.dwAvailPhys);
LbdwTotalPageFile.Text = dFileSize(MemInfo.dwTotalPageFile);
LbdwAvailPageFile.Text = dFileSize(MemInfo.dwAvailPageFile);
LbdwTotalVirtual.Text = dFileSize(MemInfo.dwTotalVirtual);
serverppath.Text = Request.ServerVariables["APPL_PHYSICAL_PATH"];
servernpath.Text = Request.ServerVariables["path_translated"];
servers.Text = Session.Contents.Count.ToString();
servera.Text = Application.Contents.Count.ToString();
TimeSpan etime = DateTime.Now.TimeOfDay;
TimeSpan t = etime.Subtract(stime);
runtime.Text = t.TotalMilliseconds.ToString();
}
}