sách gpt4 ai đã đi

Giải thích chi tiết về cách lấy mã máy trong C# (tên máy, số CPU, số ổ cứng, mac của card mạng, v.v.)

In lại Tác giả:qq735679552 Thời gian cập nhật: 2022-09-27 22:32:09 26 4
mua khóa gpt4 Nike

CFSDN nhấn mạnh vào việc tạo ra giá trị thông qua mã nguồn mở. Chúng tôi cam kết xây dựng một nền tảng chia sẻ tài nguyên để mọi người làm CNTT có thể tìm thấy thế giới tuyệt vời của riêng mình tại đây.

Bài đăng trên blog CFSDN này trình bày chi tiết cách lấy mã máy trong C# (tên máy, số CPU, số ổ cứng, mac card mạng, v.v.) được tác giả thu thập và sắp xếp. Nếu bạn quan tâm đến bài viết này, vui lòng thích nó.

Bài viết này sử dụng một ví dụ để mô tả cách lấy mã máy trong C#. Chia sẻ với các bạn để tham khảo, chi tiết như sau:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
hai mươi mốt
hai mươi hai
hai mươi ba
hai mươi bốn
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
sử dụng Hệ thống.Runtime.InteropServices;
sử dụng Hệ thống.Quản lý;
sử dụng Hệ thống;
công cộng lớp học Thông tin phần cứng
{
   //Lấy tên máy
   công cộng sợi dây Lấy tên máy chủ()
   {
   trở lại System.Net.Dns.GetHostName();
   }
   //Lấy số CPU
   công cộng Chuỗi GetCpuID()
   {
     thử
     {
       Lớp quản lý mc = mới Lớp quản lý( "Bộ xử lý Win32" );
       Quản lýObjectCollection moc = mc.GetInstances();
       Chuỗi strCpuID = vô giá trị ;
       foreach (Quản lýĐối tượng mo TRONG mộc)
       {
         strCpuID = mo.Thuộc tính[ "Mã bộ xử lý" ].Giá trị.ToString();
         phá vỡ ;
       }
       trở lại mã CPU;
     }
     nắm lấy
     {
       trở lại "" ;
     }
   } //kết thúc phương thức
//Lấy số ổ cứng đầu tiên
   công cộng Chuỗi GetHardDiskID()
   {
     thử
     {
       ManagementObjectSearcher tìm kiếm = mới Quản lýObjectSearcher( "CHỌN * TỪ Win32_PhysicalMedia" );
       Chuỗi strHardDiskID = vô giá trị ;
       foreach (Quản lýĐối tượng mo TRONG tìm kiếm.Get())
       {
         strHardDiskID = tháng[ "Số seri" ].ToString().Cắt();
         phá vỡ ;
       }
       trở lại strID Đĩa cứng;
     }
     nắm lấy
     {
       trở lại "" ;
     }
   } //kết thúc
công cộng liệt kê NCBXây dựng
{
   NCBNAMSZ = 16, /* độ dài tuyệt đối của tên mạng */
   MAX_LANA =254, /* lana nằm trong phạm vi từ 0 đến MAX_LANA bao gồm */
   NCBENUM = 0x37, /* NCB ĐÁNH SỐ LANA */
   NRC_GOODRET = 0x00, /* trả về tốt */
   NCBRESET = 0x32, /* CÀI ĐẶT LẠI NCB */
   NCBASTAT = 0x33, /* TRẠNG THÁI BỘ CHUYỂN ĐỔI NCB */
   NUM_NAMEBUF =30, /* Số lượng BUFFER của NAME */
}
   [StructLayout(LayoutKind.Sequential)]
   công cộng cấu trúc TRẠNG THÁI_BỘ_QUẢN_LÝ
   {
     [MarshalAs(UnmanagedType.ByValArray, SizeConst=6)]
     công cộng byte [] địa chỉ bộ điều hợp;
     công cộng byte rev_major;
     công cộng byte đã đặt trước0;
     công cộng byte loại bộ điều hợp;
     công cộng byte rev_minor;
     công cộng ngắn khoảng thời gian;
     công cộng ngắn frmr_recv;
     công cộng ngắn frmr_xmit;
     công cộng ngắn lỗi khung_recv_err;
     công cộng ngắn xmit_hủy bỏ;
     công cộng đơn vị xmit_thành_công;
     công cộng đơn vị recv_thành_công;
     công cộng ngắn lỗi iframe_xmit;
     công cộng ngắn recv_buff_không có giá trị;
     công cộng ngắn t1_hết giờ;
     công cộng ngắn ti_timeouts;
     công cộng đơn vị đã đặt trước1;
     công cộng ngắn miễn phí_ncbs;
     công cộng ngắn max_cfg_ncbs;
     công cộng ngắn max_ncbs;
     công cộng ngắn xmit_buf_không có giá trị;
     công cộng ngắn kích thước_gram_tối_đa;
     công cộng ngắn đang chờ xử lý;
     công cộng ngắn phiên_cfg_tối_đa;
     công cộng ngắn phiên_tối_đa;
     công cộng ngắn kích thước gói_phiên_phiên_tối_đa;
     công cộng ngắn tên_số;
   }
   [StructLayout(LayoutKind.Sequential)]
   công cộng cấu trúc TÊN_ĐỆM
   {
     [MarshalAs(UnmanagedType.ByValArray, SizeConst=( số nguyên )NCBCONST.NCBNAMSZ)]
     công cộng byte [] tên;
     công cộng byte tên_số;
     công cộng byte tên_cờ;
   }
   [StructLayout(LayoutKind.Sequential)]
   công cộng cấu trúc Ngân hàng quốc tế
   {
     công cộng byte lệnh ncb;
     công cộng byte mã ncb;
     công cộng byte ncb_lsn;
     công cộng byte ncb_số;
     công cộng Bộ đệm IntPtr ncb;
     công cộng ngắn ncb_chiều dài;
     [MarshalAs(UnmanagedType.ByValArray, SizeConst=( số nguyên )NCBCONST.NCBNAMSZ)]
     công cộng byte [] ncb_tên_cuộc_gọi;
     [MarshalAs(UnmanagedType.ByValArray, SizeConst=( số nguyên )NCBCONST.NCBNAMSZ)]
     công cộng byte [] ncb_tên;
     công cộng byte ncb_rto;
     công cộng byte ncb_sto;
     công cộng IntPtr ncb_post;
     công cộng byte ncb_lana_num;
     công cộng byte ncb_cmd_cplt;
     [MarshalAs(UnmanagedType.ByValArray, SizeConst=10)]
     công cộng byte [] ncb_dự trữ;
     công cộng Sự kiện IntPtr ncb;
   }
   [StructLayout(LayoutKind.Sequential)]
   công cộng cấu trúc LANA_ENUM
   {
     công cộng byte chiều dài;
     [MarshalAs(UnmanagedType.ByValArray, SizeConst=( số nguyên )NCBCONST.MAX_LANA)]
     công cộng byte [] lana;
   }
   [StructLayout(LayoutKind. Tự động)]
   công cộng cấu trúc NHẬT BẢN
   {
     công cộng ADAPTER_STATUS thích ứng;
     [MarshalAs(UnmanagedType.ByValArray, SizeConst=( số nguyên )NCBCONST.NUM_NAMEBUF)]
     công cộng Bộ đệm tên []
   }
   công cộng lớp học API Win32
   {
     [DllNhập khẩu( "NETAPI32.DLL" )]
     công cộng tĩnh bên ngoài char Mạng lưới Bios tham khảo NCB ncb);
   }
   //Lấy card mạng mac
   công cộng sợi dây Lấy địa chỉ Mac()
   {
     sợi dây địa chỉ= "" ;
     thử
     {
       số nguyên cb;
       Bộ chuyển đổi ASTAT;
       NCB NCB= mới NCB();
       char Mã uRet;
       LANA_ENUM lớp;
       Lệnh Ncb.ncb_command = ( byte )NCBCONST.NCBENUM;
       cb = Marshal.Kích thước( loại của (LANA_ENUM));
       Ncb.ncb_buffer = Marshal.AllocHGlobal(cb);
       Ncb.ncb_length = ( ngắn )cb;
       uRetCode = Win32API.Netbios( tham khảo Ncb);
       lenum = (LANA_ENUM)Marshal.PtrToStructure(Ncb.ncb_buffer, loại của (LANA_ENUM));
       Marshal. FreeHGlobal(Ncb.ncb_buffer);
       nếu như (Mã uRet != ( ngắn )NCBCONST.NRC_GOODRET)
       trở lại "" ;
       ( số nguyên i=0; i < chiều dài lenum;i++)
       {
         Lệnh Ncb.ncb_command = ( byte )NCBCONST.NCBRESET;
         Ncb.ncb_lana_num = lenum.lana[i];
         uRetCode = Win32API.Netbios( tham khảo Ncb);
         nếu như (Mã uRet != ( ngắn )NCBCONST.NRC_GOODRET)
         trở lại "" ;
         Lệnh Ncb.ncb_command = ( byte )NCBCONST.NCBASTAT;
         Ncb.ncb_lana_num = lenum.lana[i];
         Ncb.ncb_tên_gọi[0]=( byte ) '*' ;
         cb = Marshal.Kích thước( loại của (ADAPTER_STATUS)) + Marshal.SizeOf( loại của (NAME_BUFFER))*( số nguyên )NCBCONST.NUM_NAMEBUF;
         Ncb.ncb_buffer = Marshal.AllocHGlobal(cb);
         Ncb.ncb_length = ( ngắn )cb;
         uRetCode = Win32API.Netbios( tham khảo Ncb);
         bộ chuyển đổi.adapt = (ADAPTER_STATUS)Marshal.PtrToStructure(Ncb.ncb_buffer, loại của (TRẠNG THÁI_BỘ_CHUYỂN_ĐỔI));
         Marshal. FreeHGlobal(Ncb.ncb_buffer);
         nếu như (Mã uRet == ( ngắn )NCBCONST.NRC_GOODRET)
         {
           nếu như (i>0)
           địa chỉ += ":" ;
           địa chỉ = sợi dây .Định dạng( "{0,2:X}{1,2:X}{2,2:X}{3,2:X}{4,2:X}{5,2:X}" ,
           bộ chuyển đổi.adapt.adapter_address[0],
           bộ chuyển đổi.adapt.adapter_address[1],
           bộ chuyển đổi.adapt.adapter_address[2],
           bộ chuyển đổi.adapt.adapter_address[3],
           bộ chuyển đổi.adapt.adapter_address[4],
           bộ chuyển đổi.adapt.adapter_address[5]);
         }
       }
     }
     nắm lấy
     {
     }
     trở lại addr. Thay thế( '' , '0' );
   }
}

Tôi hy vọng bài viết này sẽ hữu ích với mọi người khi lập trình C#.

Cuối cùng, bài viết này về phương pháp chi tiết để lấy mã máy trong C# (tên máy, số CPU, số ổ cứng, mac card mạng, v.v.) đã kết thúc. Nếu bạn muốn biết thêm về phương pháp chi tiết để lấy mã máy trong C# (tên máy, số CPU, số ổ cứng, mac card mạng, v.v.), vui lòng tìm kiếm các bài viết CFSDN hoặc tiếp tục duyệt các bài viết liên quan. Tôi hy vọng bạn sẽ ủng hộ blog của tôi trong tương lai! .

26 4 0
qq735679552
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com