下面是我在VS2005写的类获得CPU HD IPADDR 等等信息的,在ASP网页调用这个类!可是得到的都是服务器的信息!请问我怎么等到客户端的这些信息

utpcb 2008-01-03 12:04:48
如题 这是类
using System;
using System.Data;
using System.Configuration;
using System.Collections.Generic;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Management;
using System.Net;
using System.ComponentModel;
using System.Web.Configuration;
using System.Windows.Forms;
using System.Collections.Specialized;


/// <summary>
/// Summary description for Class1
/// </summary>
public class RegisterPC
{

public string Name;

public string Disk;
public string Memory;
public string PCName;
public string IPAddr;
public string MacAddr;


public RegisterPC()
{


Name= GetCpuInfo();

//获取计算机CPU信息
Disk =GetHdInfo();
//获取HD信息

Memory = GetPhisicalMemory().ToString() + "M";
//获取内存大小

//获取计算机名称
PCName = System.Net.Dns.GetHostName();

//获取IP地址
IPAddr = GetIPAddr();
//获取MAC地址
MacAddr = GetMacAddr();


//
// TODO: Add constructor logic here
//
}


private string GetCpuInfo()
{
String MyInfo = "";
ManagementObjectSearcher MySearcher = new ManagementObjectSearcher("SELECT * FROM Win32_Processor");
foreach (ManagementObject MyObject in MySearcher.Get())
{
MyInfo = MyObject["Name"].ToString().Trim();
}
return MyInfo;
}
private string GetHdInfo()
{
String HDid = "";
ManagementClass cimobject = new ManagementClass("Win32_DiskDrive");
ManagementObjectCollection moc = cimobject.GetInstances();
foreach (ManagementObject mo in moc)
{
HDid = (string)mo.Properties["Model"].Value;
}
return HDid;
}


private int GetPhisicalMemory()
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher(); //用于查询一些如系统信息的管理对象
searcher.Query = new SelectQuery("Win32_PhysicalMemory", "", new string[] { "Capacity" });//设置查询条件
ManagementObjectCollection collection = searcher.Get(); //获取内存容量
ManagementObjectCollection.ManagementObjectEnumerator em = collection.GetEnumerator();

int capacity = 0;
while (em.MoveNext())
{
ManagementBaseObject baseObj = em.Current;
if (baseObj.Properties["Capacity"].Value != null)
{
try
{
capacity += int.Parse(baseObj.Properties["Capacity"].Value.ToString());
}
catch
{
Console.WriteLine("有错误发生!", "错误信息");
return 0;
}
}
}
return capacity / 1024 / 1024;
}

private string GetIPAddr()
{
string IP = "";
IPAddress[] ips = Dns.GetHostAddresses(System.Net.Dns.GetHostName());
foreach (IPAddress ip in ips)
{
IP = ip.ToString();
}
return IP;
}
private string GetMacAddr()
{
string Mac = "";
ManagementClass mc;
mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
if (mo["IPEnabled"].ToString() == "True")
Mac = mo["MacAddress"].ToString();
}
return Mac;
}

}
...全文
72 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
vefo 2008-01-03
  • 打赏
  • 举报
回复
上面的代码得到客户端的这些信息
好象不大可能吧!
ipqxiang 2008-01-03
  • 打赏
  • 举报
回复
Request.ServerVariables["REMOTE_ADDR"] //客户端IP

还有其它的信息可以根据变量值而变.
andyhooo 2008-01-03
  • 打赏
  • 举报
回复
当然是服务器信息.了.

客户端我看不行,看看javascript行不行
andyhooo 2008-01-03
  • 打赏
  • 举报
回复
怎样看啊.累.
utpcb 2008-01-03
  • 打赏
  • 举报
回复
我要读出 CPU 内存 硬盘 MAC 信息 啊 前三个我都会就最后一个不会怎么弄 啊! 求求大家帮忙以下啊
tomatozq 2008-01-03
  • 打赏
  • 举报
回复
你在服务器端写的代码只能访问服务器的资源,除非你写jscript调用ActiveXObject对象才能调用客户端资源,不过好像没有读取配置信息的。
一般是用Request.ServerVariables["HTTP_USER_AGENT"]来读取客户端信息,
如:
Response.Write(Request.ServerVariables["HTTP_USER_AGENT"]);
本机输出:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR
utpcb 2008-01-03
  • 打赏
  • 举报
回复
大家能说详细点吗?谢谢
utpcb 2008-01-03
  • 打赏
  • 举报
回复
客户端 怎么写呢? javaScript我没写过 ! 怎么办啊

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧