• 获取客户机的当前使用的IP、CPU、硬盘序列等信息生成机器码


    客户机信息Helper

    /**
    *┌──────────────────────────────────────────────────────────────┐
    *│ 描    述:客户端机器信息相关的工具类                                                   
    *│ 作    者:执笔小白                                              
    *│ 版    本:2.0                                       
    *│ 创建时间:2020-6-13 15:40:56                            
    *└──────────────────────────────────────────────────────────────┘
    *┌──────────────────────────────────────────────────────────────┐
    *│ 命名空间: ZhibiXiaoBai.Uril.EquipmentHelper                               
    *│ 类    名:GetlocalIpHelper                                     
    *└──────────────────────────────────────────────────────────────┘
    */
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Management;
    using System.Net;
    using System.Net.Sockets;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace ZhibiXiaoBai.Uril.EquipmentHelper
    {
        /// <summary>
        /// 获取本地IP、MAC、硬盘序列、机器码等
        /// </summary>
        public class GetlocalIpHelper
        {
            /// <summary>
            /// 获取本地当前使用的Ip
            /// </summary>
            /// <returns></returns>
            public static string GetlocalIp()
            {
                using (Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, 0))
                {
                    socket.Connect("8.8.8.8", 65530);
                    IPEndPoint endPoint = socket.LocalEndPoint as IPEndPoint;
                    return endPoint.Address.ToString();
                }
            }
    
            ///<summary> 
            ///获取cpu序列号     
            ///</summary> 
            ///<returns>string</returns> 
            private static string GetCpuInfo()
            {
                string cpuInfo = "";
                try
                {
                    using (ManagementClass cimobject = new ManagementClass("Win32_Processor"))
                    {
                        ManagementObjectCollection moc = cimobject.GetInstances();
    
                        foreach (ManagementObject mo in moc)
                        {
                            cpuInfo = mo.Properties["ProcessorId"].Value.ToString();
                            mo.Dispose();
                        }
                    }
                }
                catch (Exception)
                {
                    throw;
                }
                return cpuInfo.ToString();
            }
    
            ///<summary> 
            ///获取硬盘ID     
            ///</summary> 
            ///<returns> string </returns> 
            private static string GetHDid()
            {
                string HDid = "";
                try
                {
                    using (ManagementClass cimobject1 = new ManagementClass("Win32_DiskDrive"))
                    {
                        ManagementObjectCollection moc1 = cimobject1.GetInstances();
                        foreach (ManagementObject mo in moc1)
                        {
                            HDid = (string)mo.Properties["Model"].Value;
                            mo.Dispose();
                            break;
                        }
                    }
                }
                catch (Exception)
                {
                    throw;
                }
                return HDid.ToString();
            }
    
            ///<summary> 
            ///获取网卡硬件地址 
            ///</summary> 
            ///<returns> string </returns> 
            private static string GetMoAddress()
            {
                string MoAddress = "";
                try
                {
                    using (ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration"))
                    {
                        ManagementObjectCollection moc2 = mc.GetInstances();
                        foreach (ManagementObject mo in moc2)
                        {
                            if ((bool)mo["IPEnabled"] == true)
                                MoAddress = mo["MacAddress"].ToString();
                            mo.Dispose();
                        }
                    }
                }
                catch (Exception)
                {
                    throw;
                }
                return MoAddress.ToString();
            }
    
            /// <summary>
            /// 机器码获取程序,随机生成一个GUID+计算机名组成形成一个唯一码。
            /// </summary>
            /// <returns></returns>
            public static string GetCode()
            {
                // 机器码处理可以如下
                string str = "PC." + GetCpuInfo() + "." + GetMoAddress();
                return str;
            }
        }
    }
  • 相关阅读:
    C#怎样保证弹出窗体是唯一并居中显示
    1、怎样设置C#OpenFileDialog(文件选择窗体)的指定路径、文件格式等属性(设置打开默认路径、文件格式、窗体显示文本)
    FTP在CentOS上安装与使用
    nano在CentOS上的安装和使用
    CentOS 7 安装php5.6,Nginx,Memcached环境及配置
    PhpStorm 2017.1安装及破解过程
    在唯一密钥属性“name”设置为“ExtensionlessUrlHandler-Integrated-4.0”时,无法添加类型为“add”的重复集合项
    获取含有字符串数组里元素的数据,并批量删除
    如何去掉browserLinkSignalR
    使用VS2015开发asp程序让IIS express 允许的父路径的方法
  • 原文地址:https://www.cnblogs.com/qq2806933146xiaobai/p/15671968.html
Copyright © 2020-2023  润新知