最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#實(shí)現(xiàn)生成mac地址與IP地址注冊(cè)碼的兩種方法

 更新時(shí)間:2014年09月10日 11:47:57   投稿:shichen2014  
這篇文章主要介紹了C#實(shí)現(xiàn)生成mac地址與IP地址注冊(cè)碼的兩種方法,非常實(shí)用的技巧,需要的朋友可以參考下

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

方法一:

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("機(jī)器碼:" + str3);
      Console.WriteLine("注冊(cè)碼:"+str7);
      return flag;
    }
  }
}

方法二:

using System.Management;

//Win32_NetworkAdapterConfiguration是WMI數(shù)據(jù)庫(kù)中用來(lái)存放網(wǎng)絡(luò)設(shè)備的信息表
ManagementObjectSearcher query = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled='TRUE'");

//ManagementObjectCollection對(duì)象用來(lái)存放查詢結(jié)果
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 值都是可以包含多個(gè)值得數(shù)組.
 //為了適應(yīng)這種情況,為了適應(yīng)這種情況,用戶必須把結(jié)果分配到一個(gè)字符串?dāng)?shù)組,
 //并再一次用foreach語(yǔ)句通過(guò)該字符串?dāng)?shù)組
 string[] addresses = (string[])mo["IPAddress"];
 string[] subnets = (string[])mo["IPSubnet"];
 string[] defaultgateways = (string[])mo["DefaultIPGateway"];

 //任何一個(gè)接口都可能有多個(gè)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();
}

希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • c# 模擬線性回歸的示例

    c# 模擬線性回歸的示例

    這篇文章主要介紹了c# 模擬線性回歸的示例,幫助大家利用c#進(jìn)行機(jī)器學(xué)習(xí),感興趣的朋友可以了解下
    2020-10-10
  • C#實(shí)現(xiàn)讀取USB轉(zhuǎn)串口參數(shù)并顯示在ComboBox

    C#實(shí)現(xiàn)讀取USB轉(zhuǎn)串口參數(shù)并顯示在ComboBox

    在很多應(yīng)用程序中,尤其是那些需要與外部硬件通信的程序中,自動(dòng)檢測(cè)和讀取串口參數(shù)是一個(gè)非常有用的功能,下面我們就來(lái)看看如何在C#中實(shí)現(xiàn)這一功能吧
    2024-01-01
  • 在Winform和WPF中注冊(cè)全局快捷鍵實(shí)現(xiàn)思路及代碼

    在Winform和WPF中注冊(cè)全局快捷鍵實(shí)現(xiàn)思路及代碼

    如果注冊(cè)快捷鍵,RegisterHotKey中的fsModifiers參數(shù)為0,即None選項(xiàng),一些安全軟件會(huì)警報(bào),可能因?yàn)檫@樣就可以全局監(jiān)聽鍵盤而造成安全問(wèn)題,感興趣的你可以參考下本文
    2013-02-02
  • C#異步方法返回void與Task的區(qū)別詳解

    C#異步方法返回void與Task的區(qū)別詳解

    這篇文章主要給大家介紹了關(guān)于C#異步方法返回void與Task的區(qū)別的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • C#環(huán)形隊(duì)列的實(shí)現(xiàn)方法詳解

    C#環(huán)形隊(duì)列的實(shí)現(xiàn)方法詳解

    這篇文章先是簡(jiǎn)單的給大家介紹了什么是環(huán)形隊(duì)列和環(huán)形隊(duì)列的優(yōu)點(diǎn),然后通過(guò)實(shí)例代碼給大家介紹C#如何實(shí)現(xiàn)環(huán)形隊(duì)列,有需要的朋友們可以參考借鑒,下面來(lái)一起看看吧。
    2016-09-09
  • unity通過(guò)Mesh網(wǎng)格繪制圖形(三角形、正方體、圓柱)

    unity通過(guò)Mesh網(wǎng)格繪制圖形(三角形、正方體、圓柱)

    這篇文章主要為大家詳細(xì)介紹了unity通過(guò)Mesh網(wǎng)格繪制圖形:三角形、正方體、圓柱,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • C# 中屬性PropertyInfo的setvalue用法說(shuō)明

    C# 中屬性PropertyInfo的setvalue用法說(shuō)明

    這篇文章主要介紹了C# 中屬性PropertyInfo的setvalue用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-01-01
  • C#利用異步委托實(shí)現(xiàn)獲取線程返回值

    C#利用異步委托實(shí)現(xiàn)獲取線程返回值

    一般來(lái)說(shuō),異步委托主要用于解決 ThreadPool.QueueUserWorkItem 沒(méi)有提供獲取線程執(zhí)行完成后的返回值問(wèn)題,下面我們就來(lái)學(xué)習(xí)一下C#如何利用異步委托實(shí)現(xiàn)獲取線程返回值吧
    2023-12-12
  • 實(shí)例分享C#中Explicit和Implicit用法

    實(shí)例分享C#中Explicit和Implicit用法

    本篇文章主要給讀者們分享了C#中Explicit和Implicit的用法,對(duì)此有需求和興趣的朋友們一起學(xué)習(xí)下吧。
    2017-12-12
  • C#調(diào)用SQL?Server中有參數(shù)的存儲(chǔ)過(guò)程

    C#調(diào)用SQL?Server中有參數(shù)的存儲(chǔ)過(guò)程

    這篇文章介紹了C#調(diào)用SQL?Server中有參數(shù)存儲(chǔ)過(guò)程的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03

最新評(píng)論

交口县| 察隅县| 比如县| 开阳县| 綦江县| 广西| 绥宁县| 康保县| 新源县| 鄄城县| 塘沽区| 云南省| 揭阳市| 突泉县| 巴彦县| 瓦房店市| 石柱| 巩义市| 博乐市| 寿阳县| 巨野县| 黄山市| 雷州市| 吉安县| 邵阳县| 绥化市| 南宁市| 寿宁县| 石台县| 海城市| 咸阳市| 南开区| 珠海市| 新巴尔虎右旗| 班玛县| 屏边| 且末县| 温泉县| 漯河市| 津南区| 新安县|