国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#實現生成mac地址與IP地址注冊碼的兩種方法

2020-01-24 02:26:08
字體:
來源:轉載
供稿:網友

本文實例講述了C#實現生成mac地址與IP地址注冊碼的兩種方法,分享給大家供大家參考之用。具體方法如下:

方法一:

using System;using System.Management;using System.Security.Cryptography;using System.IO;using System.Collections.Generic;using System.Text;namespace xingming_reg{  class Program  {    static void Main(string[] args)    {      bool sucsess = false;      string computerbit = "";      regmutou reg = new regmutou();      computerbit = reg.getcomputerbit("X");      sucsess = reg.regmutousoft(computerbit, "xinmin", "xinmin.usr");      Console.WriteLine(sucsess);      Console.ReadLine();    }  }  internal class regmutou  {    // Methods    public string GetBIOSSerialNumber()    {      try      {        ManagementObjectSearcher searcher = new ManagementObjectSearcher("Select * From Win32_BIOS");        string str = "";        foreach (ManagementObject obj2 in searcher.Get())        {          str = obj2["SerialNumber"].ToString().Trim();        }        return str;      }      catch      {        return "";      }    }    public string getcomputerbit(string softname)    {      string cpuID = this.GetCpuID();      string bIOSSerialNumber = this.GetBIOSSerialNumber();      string hardDiskSerialNumber = this.GetHardDiskSerialNumber();      string netCardMACAddress = this.GetNetCardMACAddress();      if (cpuID != "")      {        MD5 md = new MD5CryptoServiceProvider();        cpuID = BitConverter.ToString(md.ComputeHash(Encoding.Default.GetBytes(cpuID))).Replace("-", "").ToUpper().Substring(8, 0x10);        return (softname + "C" + cpuID);      }      if (bIOSSerialNumber != "")      {        MD5 md2 = new MD5CryptoServiceProvider();        bIOSSerialNumber = BitConverter.ToString(md2.ComputeHash(Encoding.Default.GetBytes(bIOSSerialNumber))).Replace("-", "").ToUpper().Substring(8, 0x10);        return (softname + "B" + bIOSSerialNumber);      }      if (hardDiskSerialNumber != "")      {        MD5 md3 = new MD5CryptoServiceProvider();        hardDiskSerialNumber = BitConverter.ToString(md3.ComputeHash(Encoding.Default.GetBytes(hardDiskSerialNumber))).Replace("-", "").ToUpper().Substring(8, 0x10);        return (softname + "H" + hardDiskSerialNumber);      }      if (netCardMACAddress != "")      {        MD5 md4 = new MD5CryptoServiceProvider();        netCardMACAddress = BitConverter.ToString(md4.ComputeHash(Encoding.Default.GetBytes(netCardMACAddress))).Replace("-", "").ToUpper().Substring(8, 0x10);        return (softname + "N" + netCardMACAddress);      }      return (softname + "WF53A419DB238BBAD");    }    public string GetCpuID()    {      try      {        ManagementObjectCollection instances = new ManagementClass("Win32_Processor").GetInstances();        string str = null;        foreach (ManagementObject obj2 in instances)        {          str = obj2.Properties["ProcessorId"].Value.ToString();          break;        }        return str;      }      catch      {        return "";      }    }    public string GetHardDiskSerialNumber()    {      try      {        ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia");        string str = "";        foreach (ManagementObject obj2 in searcher.Get())        {          str = obj2["SerialNumber"].ToString().Trim();          break;        }        return str;      }      catch      {        return "";      }    }    public string GetNetCardMACAddress()    {      try      {        ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapter WHERE ((MACAddress Is Not NULL) AND (Manufacturer <> 'Microsoft'))");        string str = "";        foreach (ManagementObject obj2 in searcher.Get())        {          str = obj2["MACAddress"].ToString().Trim();        }        return str;      }      catch      {        return "";      }    }    public bool regmutousoft(string computerbit, string softname, string filename)    {      bool flag = true;      string str = "";      SHA1 sha = new SHA1CryptoServiceProvider();      str = BitConverter.ToString(sha.ComputeHash(Encoding.Default.GetBytes(softname))).Replace("-", "").ToUpper();      //if (!File.Exists(filename))      //{      //  flag = false;      //  Stream stream = File.Open(filename, FileMode.OpenOrCreate);      //  StreamWriter writer = new StreamWriter(stream);      //  writer.WriteLine(computerbit);      //  writer.Close();      //  stream.Close();      //  return flag;      //}      //Stream stream2 = File.Open(filename, FileMode.Open);      //StreamReader reader = new StreamReader(stream2);      //string str2 = "";      string str3 = computerbit;      //while ((str2 = reader.ReadLine()) != null)      //{      //  str3 = str2;      //}      //reader.Close();      //stream2.Close();      //if (str3.Length != 0x18)      //{      //  //return false;      //}      SHA1 sha2 = new SHA1CryptoServiceProvider();      string str4 = BitConverter.ToString(sha2.ComputeHash(Encoding.Default.GetBytes(computerbit))).Replace("-", "").ToUpper();      string str5 = "";      for (int i = 0; i < str4.Length; i++)      {        if ((i % 2) == 1)        {          str5 = str5 + str4[i];        }      }      string str6 = "";      for (int j = 0; j < str.Length; j++)      {        if ((j % 2) == 0)        {          str6 = str6 + str[j];        }      }      int[] numArray = new int[20];      for (int k = 0; k < 20; k++)      {        numArray[k] = str6[k] + str5[k];        numArray[k] = numArray[k] % 0x24;      }      string str7 = "";      for (int m = 0; m < 20; m++)      {        if ((m > 0) && ((m % 4) == 0))        {          str7 = str7 + "-";        }        str7 = str7 + "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"[numArray[m]];      }      if (str3 == str7)      {        flag = true;      }      Console.WriteLine("機器碼:" + str3);      Console.WriteLine("注冊碼:"+str7);      return flag;    }  }}

方法二:

using System.Management;//Win32_NetworkAdapterConfiguration是WMI數據庫中用來存放網絡設備的信息表ManagementObjectSearcher query = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled='TRUE'");//ManagementObjectCollection對象用來存放查詢結果ManagementObjectCollection queryCollection = query.Get();foreach (ManagementObject mo in queryCollection){ Console.WriteLine("Network Card:{0}", mo["Description"]); Console.WriteLine("MAC Address:{0}", mo["MACAddress"]); //addresses, subnets和 defaultgateways 值都是可以包含多個值得數組. //為了適應這種情況,為了適應這種情況,用戶必須把結果分配到一個字符串數組, //并再一次用foreach語句通過該字符串數組 string[] addresses = (string[])mo["IPAddress"]; string[] subnets = (string[])mo["IPSubnet"]; string[] defaultgateways = (string[])mo["DefaultIPGateway"]; //任何一個接口都可能有多個IP地址 foreach (string ipaddress in addresses) {   Console.WriteLine("IP Address:{0}", ipaddress); } foreach (string subnet in subnets) {   Console.WriteLine("Subnet Mask:{0}", subnet); } foreach (string defaultgateway in defaultgateways) {   Console.WriteLine("Gateway:{0}", defaultgateway); } Console.WriteLine();}

希望本文所述對大家的C#程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 万荣县| 江永县| 紫云| 正安县| 勐海县| 平阴县| 汉寿县| 临颍县| 三原县| 奉贤区| 赤峰市| 罗田县| 潼关县| 玛曲县| 田阳县| 册亨县| 保德县| 简阳市| 三明市| 湖州市| 城固县| 禹城市| 武安市| 奉贤区| 曲阜市| 乳源| 孟村| 大田县| 霍邱县| 年辖:市辖区| 乌兰县| 合江县| 同仁县| 正蓝旗| 库伦旗| 阳东县| 澎湖县| 寿宁县| 潼关县| 武定县| 汝城县|