В веб-проекте у меня есть страница, которая извлекает идентификатор локальной системы Mac и другие значения, такие как процессор и т. Д., Для этого я использовал приведенный ниже код . Он отлично работал во время разработки в Localhost
, но когда мы опубликовали веб-сайт и теперь используем одну и ту же страницу для получения сведений, он извлекает данные о веб-сервере. Есть ли альтернативный способ получения данных локальных компьютеров. любая помощь.Как получить идентификатор компьютера Mac и другие данные, такие как IP-адрес и т. Д.
Код I UEd для Fetching системы деталей,
#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
Редактировать
Это не может быть через Интернет, поскольку пользователь собирается зарегистрировать систему, чтобы он/она только получает детали и регистры, так есть ли способ автоматического получения данных ПК пользователей с его конца одним нажатием кнопки.
Я не думаю, что можно определить MAC-адрес посетителя вашей веб-страницы, особенно если он использует маршрутизатор или прокси-сервер (что большинство пользователей делает). – FallenSquirrel
@FallenSquirrel Я не буду регистрировать Mac-Id посетителя моей страницы, пользователь моей страницы должен зарегистрировать свой компьютер перед некоторыми действиями, чтобы он мог войти на страницу регистрации и нажать кнопку Getdetails и зарегистрировать его PC – Rajesh
Я не говорю, что было бы плохо, если бы вы зарегистрировали его, я просто говорю, что это просто невозможно. Чтобы обнаружить MAC-адрес из сетевых пакетов, вы должны находиться в той же локальной сети, что и клиент, а это не значит, что вы являетесь веб-сервером. Единственным другим методом будет работать код на стороне клиента, например Javascript, который обычно не может получить доступ к клиенту из-за ограничений безопасности (см. Здесь: http://stackoverflow.com/questions/4467905/getting-mac-address-on- a-web-page-using-a-java-апплет) – FallenSquirrel