C#获取CPUID(MD5输出),网卡ID,主DNS,备用DNS

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Management;
using System.Security.Cryptography;
using System.Net;
using System.Net.NetworkInformation;
using System.Text.RegularExpressions;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{

public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{

}
string txtIP="";
string txtSubMark="";
string txtGateWay="";
private void Form1_Load(object sender, EventArgs e)
{
//cpuid
string str = string.Empty;
ManagementClass mcCpu = new ManagementClass("win32_Processor");
ManagementObjectCollection mocCpu = mcCpu.GetInstances();
foreach (ManagementObject m in mocCpu)
{
str = m["Processorid"].ToString().Trim().Substring(0, 8);//BFEBFBFF00000F65
}
//MD5加密
byte[] result = Encoding.Default.GetBytes(str);
MD5 md5 = new MD5CryptoServiceProvider();
byte[] output = md5.ComputeHash(result);
this.textBox1.Text = BitConverter.ToString(output).Replace("-", "");

//获取网卡ID
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");

ManagementObjectCollection moc2 = mc.GetInstances();

ManagementBaseObject inPar = null;
foreach (ManagementObject mo in moc2)
{

if ((bool)mo["IPEnabled"] == true)

textBox2.Text = mo["MacAddress"].ToString();
mo.Dispose();

}

//获取首选dns
NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface adapter in nics)
{
bool Pd1 = (adapter.NetworkInterfaceType == NetworkInterfaceType.Ethernet); //判断是否是以太网连接
if (Pd1)
{
IPInterfaceProperties ip = adapter.GetIPProperties(); //IP配置信息
if (ip.UnicastAddresses.Count > 0)
{
txtIP = ip.UnicastAddresses[0].Address.ToString();//IP地址
txtSubMark = ip.UnicastAddresses[0].IPv4Mask.ToString();//子网掩码

}
if (ip.GatewayAddresses.Count > 0)
{
txtGateWay = ip.GatewayAddresses[0].Address.ToString();//默认网关
}
int DnsCount = ip.DnsAddresses.Count;
textBox3.Text = ip.DnsAddresses[0].ToString();
textBox4.Text = ip.DnsAddresses[1].ToString();
}
}
}
}
}

时间: 2024-08-30 13:09:44

C#获取CPUID(MD5输出),网卡ID,主DNS,备用DNS的相关文章

YII获取刚插入数据的id主键

单条数据时model->attributes['id']; 循环插入时使用 Yii::app()->db->getLastInsertID() 获取 循环插入时需要每次插入后重置 model->primarykey =0; 或 model->id = 0;model->setIsNewRecord(true);

MyBatis:获取插入记录的自增主键

我们知道MySql中主键可以设成auto_increment,也就是自增主键,每当新增一条记录,主键值自动加1. 在MyBatis中,执行insert,返回值为受影响的语句行数,此操作跟JDBC一致. 但是如果应用中需要将插入的值的主键返回时,这时有两种方式: 第一种方式:在mapper的insert节点中添加useGeneratedKey和keyProperty属性 第二种方式:在mapper的insert节点下添加selectKey子节点的方式 下面是具体的使用方式举例: 一.MySql中m

页面JS获取不到控件ID

为了使页面更加的友好,我们不可避免的要在页面上使用JS,所以在页面上使用javascript获取控件ID是很常见的事情.但是最近在使用JS的使用,遇到了一件让我很头疼的事情,在获取控件ID时,抱错了,监控显示,获取不到控件ID. 源代码: <script type="text/javascript"> Function(){ var args = window.dialogArguments; var serverTaskInfo = $("#hidTaskInf

js获取文件md5库

在做文件系统时,上传下载需要获取到文件的md5. 上传获取文件md5优点:将文件md5传至后段服务器,若服务器已存在该文件,则将该文件关联,实现'秒传'的功能. 下载获取文件md5优点:下载文件完成后将文件md5传给后端,后端判断文件下载是否完整. ##js-spark-md5类库实现快速获取文件md5 demo如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF

java获取System.out输出字符串

原文:java获取System.out输出字符串 源代码下载地址:http://www.zuidaima.com/share/1567106782268416.htm 最近有个需求想获取控制台输出的字符串,整理分享下,maven+junit. 版权声明:本文为博主原创文章,未经博主允许不得转载.

DeviceIoControl:通过API访问设备驱动程序;并获取window文件/文件夹id

1.设备句柄可以用API函数CreateFile获得.它的原型为 HANDLE CreateFile( LPCTSTR lpFileName,                         // 文件名/设备路径 DWORD dwDesiredAccess,                      // 访问方式 DWORD dwShareMode,                          // 共享方式 LPSECURITY_ATTRIBUTES lpSecurityAttrib

使用IO映射的方式获取tiny4412板子上的ID号

在以前的文章中,有一篇 基于ARM-contexA9-Linux驱动开发:如何获取板子上独有的ID号 在那篇文章中,具体可以参考.那时候我使用了简单的字符设备驱动框架,最终的ID号通过read方法可将ID读取出来,但是,这样做就太麻烦啦,有没有更简单的方法呢?其实有,这种方法称作IO地址的映射,而今天我们要说的是IO地址的动态映射方法,静态映射就太简单了,直接调用相应的接口,配置相应的寄存器,设置状态就可以实现.接下来看看驱动代码: #if 0 . io地址: . 静态映射: //这个头文件与平

获取当前进程(程序)主窗体句柄并设置wpf的父窗体为此句柄

原文:获取当前进程(程序)主窗体句柄并设置wpf的父窗体为此句柄 有时候在c++调用wpf控件的时候,wpf控件想自己显示窗体,但需要设置owner属性.迂回解决办法是设置wpf的window窗体的父窗体为进程的句柄. 1.获取当前进程id int id = Process.GetCurrentProcess().Id; 2.根据进程id获取进程主句柄 public static class ProcessHelper { private static class Win32 { interna

Linq To EF (添加记录后获取添加的自增ID和叫“ID”的列不是自增列不让插入的问题)

1:添加记录后,如何获取新添加的ID的值 比如,一个实体 TestEntity   对应一个表TestEntity(ID主键自增,Name,age),使用linq to ef   添加一条记录后,如何获取新记录的ID值?如下代码: var te = new TestEntity (){ Name = "名字", Age = 21};using (EFDbContext context = new EFDbContext()){ context.TestEntity .Add(te);