C#怎么取硬件标志_惠州C#培训
作者:黄君发布时间:2020-11-09分类:计算机教程浏览:813
using system;
using system.runtime.interopservices;
using system.management;
namespace hardware
{
/// <summary>
/// hardware_mac 的摘要说明。
/// </summary>
public class hardwareinfo
{
//取机器名
public string gethostname()
{
return system.net.dns.gethostname();
}
//取cpu编号
public string getcpuid()
{
try
{
managementclass mc = new managementclass("win32_processor");
managementobjectcollection moc = mc.getinstances();
string strcpuid = null ;
foreach( managementobject mo in moc )
{
strcpuid = mo.properties["processorid"].value.tostring();
break;
}
return strcpuid;
}
catch
{
return "";
}
}//end method
//取第一块硬盘编号
public string getharddiskid()
{
try
{
managementobjectsearcher searcher = new managementobjectsearcher("select * from win32_physicalmedia");
string strharddiskid = null ;
foreach(managementobject mo in searcher.get())
{
strharddiskid = mo["serialnumber"].tostring().trim();
break;
}
return strharddiskid ;
}
catch
{
return "";
}
}//end
public enum ncbconst
{
ncbnamsz =16, /* absolute length of a net name */
max_lana =254, /* lanas in range 0 to max_lana inclusive */
ncbenum =0x37, /* ncb enumerate lana numbers */
nrc_goodret =0x00, /* good return */
ncbreset =0x32, /* ncb reset */
ncbastat =0x33, /* ncb adapter status */
num_namebuf =30, /* number of names buffer */
}
[structlayout(layoutkind.sequential)]
public struct adapter_status
{
[marshalas(unmanagedtype.byvalarray, sizeconst=6)]
public byte[] adapter_address;
public byte rev_major;
public byte reserved0;
public byte adapter_type;
public byte rev_minor;
public ushort duration;
public ushort frmr_recv;
public ushort frmr_xmit;
public ushort iframe_recv_err;
public ushort xmit_aborts;
public uint xmit_success;
public uint recv_success;
public ushort iframe_xmit_err;
public ushort recv_buff_unavail;
public ushort t1_timeouts;
public ushort ti_timeouts;
public uint reserved1;
public ushort free_ncbs;
public ushort max_cfg_ncbs;
public ushort max_ncbs;
public ushort xmit_buf_unavail;
public ushort max_dgram_size;
public ushort pending_sess;
public ushort max_cfg_sess;
public ushort max_sess;
public ushort max_sess_pkt_size;
public ushort name_count;
}
[structlayout(layoutkind.sequential)]
public struct name_buffer
{
[marshalas(unmanagedtype.byvalarray, sizeconst=(int)ncbconst.ncbnamsz)]
public byte[] name;
public byte name_num;
public byte name_flags;
}
[structlayout(layoutkind.sequential)]
public struct ncb
{
public byte ncb_command;
public byte ncb_retcode;
public byte ncb_lsn;
public byte ncb_num;
public intptr ncb_buffer;
public ushort ncb_length;
[marshalas(unmanagedtype.byvalarray, sizeconst=(int)ncbconst.ncbnamsz)]
public byte[] ncb_callname;
[marshalas(unmanagedtype.byvalarray, sizeconst=(int)ncbconst.ncbnamsz)]
public byte[] ncb_name;
public byte ncb_rto;
public byte ncb_sto;
public intptr ncb_post;
public byte ncb_lana_num;
public byte ncb_cmd_cplt;
[marshalas(unmanagedtype.byvalarray, sizeconst=10)]
public byte[] ncb_reserve;
public intptr ncb_event;
}
[structlayout(layoutkind.sequential)]
public struct lana_enum
{
public byte length;
[marshalas(unmanagedtype.byvalarray, sizeconst=(int)ncbconst.max_lana)]
public byte[] lana;
}
[structlayout(layoutkind.auto)]
public struct astat
{
public adapter_status adapt;
[marshalas(unmanagedtype.byvalarray, sizeconst=(int)ncbconst.num_namebuf)]
public name_buffer[] namebuff;
}
public class win32api
{
[dllimport("netapi32.dll")]
public static extern char netbios(ref ncb ncb);
}
public string getmacaddress()
{
string addr="";
try
{
int cb;
astat adapter;
ncb ncb=new ncb();
char uretcode;
lana_enum lenum;
ncb.ncb_command = (byte)ncbconst.ncbenum;
cb = marshal.sizeof(typeof(lana_enum));
ncb.ncb_buffer = marshal.allochglobal(cb);
ncb.ncb_length = (ushort)cb;
uretcode = win32api.netbios(ref ncb);
lenum = (lana_enum)marshal.ptrtostructure(ncb.ncb_buffer, typeof(lana_enum));
marshal.freehglobal(ncb.ncb_buffer);
if(uretcode != (short)ncbconst.nrc_goodret)
return "";
for(int i=0; i < lenum.length ;i++)
{
ncb.ncb_command = (byte)ncbconst.ncbreset;
ncb.ncb_lana_num = lenum.lana[i];
uretcode = win32api.netbios(ref ncb);
if(uretcode != (short)ncbconst.nrc_goodret)
return "";
ncb.ncb_command = (byte)ncbconst.ncbastat;
ncb.ncb_lana_num = lenum.lana[i];
ncb.ncb_callname[0]=(byte)*;
cb = marshal.sizeof(typeof(adapter_status)) + marshal.sizeof(typeof(name_buffer))*(int)ncbconst.num_namebuf;
ncb.ncb_buffer = marshal.allochglobal(cb);
ncb.ncb_length = (ushort)cb;
uretcode = win32api.netbios(ref ncb);
adapter.adapt = (adapter_status)marshal.ptrtostructure(ncb.ncb_buffer, typeof(adapter_status));
marshal.freehglobal(ncb.ncb_buffer);
if (uretcode == (short)ncbconst.nrc_goodret)
{
if(i>0)
addr += ":";
addr = string.format("{0,2:x}{1,2:x}{2,2:x}{3,2:x}{4,2:x}{5,2:x}",
adapter.adapt.adapter_address[0],
adapter.adapt.adapter_address[1],
adapter.adapt.adapter_address[2],
adapter.adapt.adapter_address[3],
adapter.adapt.adapter_address[4],
adapter.adapt.adapter_address[5]);
}
}
}
catch
{}
return addr.replace( , 0);
}
}
}
相关推荐
- 清远信息:2024年广清杯清远南粤家政技能大赛举行决赛|||计算机培训机构
- 汕尾信息:陈良川带队到汕尾技师学院调研|||计算机职业技能培训班
- 东莞信息:凤岗凤岗镇组织召开社保参保缴费及劳动用工政策宣讲会|||计算机软件培训学校
- 阳江信息:2024年度注册城乡规划师职业资格考试的合格标准是怎样的?|||计算机软件培训学校
- 阳江信息:职业技能提升补贴对象有哪些?|||大学生计算机培训学校
- 清远信息:清远市首家社保服务合作网点在清城区举办启动仪式|||计算机职业技能培训班
- 汕头信息:招聘658名中高端人才!2024年汕头市引进中高端人才专场招聘会举行|||北大青鸟计算机培训中心
- 东莞信息:广东省社保智能经办现场会在东莞召开|||大学生计算机培训学校
- 东莞信息:东坑镇举办2024年重点群体系列招聘活动|||计算机职业技能培训班
- 东莞信息:万江万江街道成功举办第四届粤菜师傅烹饪技能竞赛|||广州计算机编程培训
- 计算机教程排行
-
- 1汕头信息:“公共就业服务进校园”粤东专场在汕头大学举行|||计算机网络培训学校
- 2江门信息:构建和谐劳动关系优化提升营商环境江门市开展推进新时代和谐劳动关系创建活动|||广州学电脑培训学校
- 3汕头信息:2024年广东省公共就业服务进校园粤东片区专场活动诚邀各用人单位参会|||广州计算机编程培训
- 4广州中考成绩公布,高中阶段学校录取控制分数线公布,普高最低控制线502分
- 5清远信息:校企双向奔赴清远市人社部门携企赴省内外高校招才引智|||广州计算机编程培训
- 6江门信息:工伤保险缴费误区:最低工资非缴费基准,违规用人单位将面临法律风险!|||计算机软件培训学校
- 7惠州信息:2024年第一季度惠州人力资源市场供求情况|||北大青鸟计算机培训中心
- 8惠州信息:“惠州市就业驿站巡礼”之惠阳新圩站|||大学生计算机培训学校
- 9汕尾信息:世界技能大赛获奖选手全省巡回宣讲交流活动走进汕尾|||电脑计算机编程培训学校
- 标签列表
-
- Java (3694)
- 北大青鸟 (3713)
- 软件开发 (3613)
- JAVA (3413)
- UI设计入门 (2093)
- 惠州北大青鸟 (4375)
- 惠州IT培训 (2558)
- UI设计培训 (2090)
- 惠州UI设计培训 (2095)
- 惠州UI设计培训学校 (2090)
- 惠州计算机软件培训 (6260)
- 惠州计算件软件开发 (6260)
- 惠州计算机软件基础 (6261)
- 惠州计算机JAVA培训 (3574)
- 惠州计算机Java软件开发 (3620)
- 惠州计算机JAVA软件开发 (4645)
- 惠州计算机JAVA软件开发学校 (3338)
- 惠州计算机Java软件开发培训 (3338)
- 北大青鸟IT计算机学校 (5048)
- 北大青鸟IT软件学校 (5062)
- 北大青鸟IT学校 (5059)
- 惠州计算机UI设计软件开发 (2088)
- UI设计基础教程 (2088)
- UI设计是什么 (2088)
- UI设计教程 (2088)
- 网站分类
-
- 计算机教程
- 计算机入门
- 职业学校
- 新闻动态
- 专业课程
- 热门技术
- SEO
- 培训教程
- windows
- linux教程
- 系统集成
- 网站开发
- Html5
- 办公软件
- 师资力量
- 热点问答
- 联系我们
- 计算机学校
- 惠州计算机学校
- 河源计算机学校
- 广州计算机学校
- 深圳计算机学校
- 湛江计算机学校
- 佛山计算机学校
- IT计算机培训信息
- 设计专业
- UI
- 影视特效
- 游戏动漫设计
- Photoshop
- AI设计
- 软件教程
- Java技术
- C语言/C++语言培训
- C#
- Python技术
- PHP
- 数据库
- SQL Server
- 网络教程
- 网络安全
- 网络营销
- 软件专业
- 大数据专业
- 前端开发专业
- 软件测试专业
- Python专业
- 软件实施
- 珠海计算机学校
- 初中生学什么好
- 计算机认证
- 文章归档
-
- 2024年11月 (14)
- 2024年10月 (32)
- 2024年9月 (29)
- 2024年8月 (68)
- 2024年7月 (59)
- 2024年6月 (43)
- 2024年5月 (48)
- 2024年4月 (80)
- 2024年3月 (65)
- 2024年2月 (54)
- 2024年1月 (25)
- 2023年12月 (12)
- 2023年11月 (73)
- 2023年10月 (134)
- 2023年9月 (34)
- 2023年8月 (3)
- 2023年7月 (3)
- 2023年6月 (12)
- 2023年5月 (30)
- 2023年4月 (72)
- 2023年3月 (11)
- 2023年2月 (34)
- 2023年1月 (37)
- 2022年12月 (78)
- 2022年11月 (359)
- 2022年6月 (1193)
- 2022年5月 (570)
- 2022年4月 (1567)
- 2022年3月 (982)
- 2022年2月 (54)
- 2022年1月 (182)
- 2021年9月 (308)
- 2021年8月 (1704)
- 2021年7月 (2423)
- 2021年6月 (1806)
- 2021年5月 (1569)
- 2021年4月 (1380)
- 2021年3月 (1255)
- 2021年2月 (709)
- 2021年1月 (1521)
- 2020年12月 (3626)
- 2020年11月 (1646)
- 2020年10月 (1046)
- 2020年9月 (592)
- 最近发表
-
- 清远信息:2024年广清杯清远南粤家政技能大赛举行决赛|||计算机培训机构
- 汕尾信息:陈良川带队到汕尾技师学院调研|||计算机职业技能培训班
- 东莞信息:凤岗凤岗镇组织召开社保参保缴费及劳动用工政策宣讲会|||计算机软件培训学校
- 阳江信息:2024年度注册城乡规划师职业资格考试的合格标准是怎样的?|||计算机软件培训学校
- 阳江信息:职业技能提升补贴对象有哪些?|||大学生计算机培训学校
- 清远信息:清远市首家社保服务合作网点在清城区举办启动仪式|||计算机职业技能培训班
- 汕头信息:招聘658名中高端人才!2024年汕头市引进中高端人才专场招聘会举行|||北大青鸟计算机培训中心
- 东莞信息:广东省社保智能经办现场会在东莞召开|||大学生计算机培训学校
- 东莞信息:东坑镇举办2024年重点群体系列招聘活动|||计算机职业技能培训班
- 东莞信息:万江万江街道成功举办第四届粤菜师傅烹饪技能竞赛|||广州计算机编程培训