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
{
công cộng
sợi dây
Lấy tên máy chủ()
{
trở lại
System.Net.Dns.GetHostName();
}
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
""
;
}
}
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
""
;
}
}
công cộng
liệt kê
NCBXây dựng
{
NCBNAMSZ = 16,
MAX_LANA =254,
NCBENUM = 0x37,
NRC_GOODRET = 0x00,
NCBRESET = 0x32,
NCBASTAT = 0x33,
NUM_NAMEBUF =30,
}
[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);
}
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
""
;
vì
(
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 là một lập trình viên xuất sắc, rất giỏi!