Web プロジェクトでは、ローカル システムの Mac-id とプロセッサ ID などのその他の値を取得するページがあります。そのために、以下のコードLocalhost
を使用しました。詳細を取得する同じページ、それは Web サーバーの詳細を取得しています。ローカル マシンの詳細を取得する別の方法はありますか。親切に助けてください。
システムの詳細を取得するために使用したコードは、
#region Sytem Details
private string GetMac()
{
string Mac = string.Empty;
ManagementClass MC = new ManagementClass("Win32_NetworkAdapter");
ManagementObjectCollection MOCol = MC.GetInstances();
foreach (ManagementObject MO in MOCol)
if (MO != null)
{
if (MO["MacAddress"] != null)
{
Mac = MO["MACAddress"].ToString();
if (Mac != string.Empty)
break;
}
}
return Mac;
}
public static string LocalIPAddress()
{
IPHostEntry host;
string localIP = "";
host = Dns.GetHostEntry(Dns.GetHostName());
foreach (IPAddress ip in host.AddressList)
{
if (ip.AddressFamily.ToString() == "InterNetwork")
{
localIP = ip.ToString();
}
}
return localIP;
}
private static string GetProcessorName()
{
ManagementClass mgt = new ManagementClass("Win32_Processor");
ManagementObjectCollection procs = mgt.GetInstances();
foreach (ManagementObject item in procs)
return item.Properties["Name"].Value.ToString();
return "Unknown";
}
private string GetProcessorID()
{
string sCpuInfo = String.Empty;
bool bSuccess = false;
//*** Declare Management Class
ManagementClass clsMgtClass = new ManagementClass("Win32_Processor");
ManagementObjectCollection colMgtObjCol = clsMgtClass.GetInstances();
//*** Loop Over Objects
foreach (ManagementObject objMgtObj in colMgtObjCol)
{
//*** Only return cpuInfo from first CPU
if (sCpuInfo == String.Empty)
{
sCpuInfo = objMgtObj.Properties["ProcessorId"].Value.ToString();
bSuccess = true;
}
}
if (bSuccess == true)
{
}
return sCpuInfo;
}
private static string GetName()
{
string netBiosName = System.Environment.MachineName;
//return netBiosName;
// Following method is deprecated
// string dnsName =
// System.Net.Dns.GetHostByName("LocalHost").HostName;
string dnsName = System.Net.Dns.GetHostName();
return dnsName;
}
private string GetOSName()
{
System.OperatingSystem os = System.Environment.OSVersion;
string osName = "Unknown";
switch (os.Platform)
{
case System.PlatformID.Win32Windows:
switch (os.Version.Minor)
{
case 0:
osName = "Windows 95";
break;
case 10:
osName = "Windows 98";
break;
case 90:
osName = "Windows ME";
break;
}
break;
case System.PlatformID.Win32NT:
switch (os.Version.Major)
{
case 3:
osName = "Windws NT 3.51";
break;
case 4:
osName = "Windows NT 4";
break;
case 5:
if (os.Version.Minor == 0)
osName = "Windows 2000";
else if (os.Version.Minor == 1)
osName = "Windows XP";
else if (os.Version.Minor == 2)
osName = "Windows Server 2003";
else if (os.Version.Minor == 3)
osName = "Windows Vista";
else if (os.Version.Minor == 4)
osName = "Windows 7";
break;
case 6:
osName = "Windows 8";
break;
}
break;
}
return osName;
}
#endregion
編集
ユーザーはシステムを登録するため、インターネット経由ではない可能性があります。そのため、ユーザーは詳細と登録のみを取得します。ボタンをクリックするだけで、ユーザーの PC データを自分の側から自動的に取得する方法はありますか? .