So erhalten Sie die Mac-ID des Client-Systems und andere Details wie die IP-Adresse usw

Im Webprojekt habe ich eine Seite, die die lokale System-Mac-ID und andere Werte wie Prozessor-ID usw. abruft, für die ich den folgenden Code verwendet habe. Es funktionierte perfekt während der Entwicklung in derLocalhost Aber als wir die Website veröffentlicht hatten und jetzt dieselbe Seite verwenden, um die Details abzurufen, werden die Details des Webservers abgerufen. Gibt es eine alternative Möglichkeit, die Details der lokalen Computer abzurufen.

Der Code, den ich für das Abrufen von Systemdetails verwendet habe, lautet:

  #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

Bearbeiten

Es kann sein, dass es nicht über das Internet geht, da der Benutzer das System registrieren wird, sodass er / sie nur die Details und Register abruft. Gibt es also eine Möglichkeit, die PC-Daten des Benutzers automatisch mit nur einem Klick von seinem Ende abzurufen .

Antworten auf die Frage(1)

Ihre Antwort auf die Frage