[译]获取系统网络MAC地址的三种方法
2006-01-10 14:08
591 查看
[原文]
[未经许可,不得转载]
[风焱注:这是鄙人第一篇除英语作业以外的翻译,目的是练手,所以选了一篇极其简单的凑数。]
获取系统网络MAC地址的三种方法--Borland开发人员支持团队
摘要: 本文描述了通过编程获取系统网卡(NIC,Network interface Card)的MAC地址的三种不同方法。
[未经许可,不得转载]
[风焱注:这是鄙人第一篇除英语作业以外的翻译,目的是练手,所以选了一篇极其简单的凑数。]
获取系统网络MAC地址的三种方法--Borland开发人员支持团队
摘要: 本文描述了通过编程获取系统网卡(NIC,Network interface Card)的MAC地址的三种不同方法。
三种方法得到系统MAC地址 | ||||||||||||
我曾经在新闻组和网页上不停的搜索,试图找到一种简单的方法来得到系统中的MAC地址。[译注:原文将MAC的全称错写成网络适配器(Network Interface Card)。MAC是介质访问控制(Media Access Control)的简称,它是固化在网卡EEPROM中的物理地址。]你也许猜想网上有很多可用的例子,因为非常多的人(尤其在新闻组中)需要这个问题答案。但事实并非这样。这些例子是我嘿咻嘿咻搜索的成果和一些我自己的实践。 注意:这三个例子中没有一个是通过粘贴ipconfig.exe /all的输出来实现。 | ||||||||||||
目的 | ||||||||||||
这篇文章的目的是给出一些得知你MAC地址的简单方法。我会解释这些代码是如何工作的,并给出一些简单的例子来阐述。我假设你已经掌握了下面的概念: Borland C++Builder 简单的网络概念 一些 Win32 API | ||||||||||||
方法一 - 用Netbios API | ||||||||||||
这个方法是通过微软的Netbios API来得到你机器的MAC地址。这些API是一组提供比所谓的Winsock更底层的网络支持的命令。通过Netbios来得到地质这种方法的确定就是你必须安装了Netbios(如果你在一个Windows网络上并使用了文件共享,就没有这个问题)。另外,这个方法快速又准确。 Netbios API只包含了一个简称为Netbios的函数。这个函数通过一个网络控制块结构作为参数,来告诉函数需要做什么。这个结构的定义如下:
枚举所有的网络适配器 重启每一个适配器以便得到它的正确信息 查询该适配器来得到MAC地址并将地址填入标准的colon-separated格式(指用冒号分割的格式) 下面的代码简单是这些概念的简单示例。有关Netbios函数的更多信息请参考微软帮助文件或MSDN。
| ||||||||||||
方法二 - COM GUID API | ||||||||||||
这个方法用COM API来创建一个GUID(globably unique identifier,全局唯一标识符)并且从那里得到MAC地址。GUID是用来一般地标识系统中的COM组件或者其他对象。他们通过MAC地址(再加上其他东西)计算出来的,并且在表面上看还将地址保留在GUID中。我说表面上的原因是这还不确定。我提供这个方法作主要是作为一个不要做什么的例子。按这种方法你有可能最终得到MAC地址,但也可能你最后会得到一些随机的十六进制数。 这个方法非常的简单,并不需要太多的解释。我们通过CoCreateGuid创建一个GUID并将最后的6字节存入一个字符串。这应该就是MAC地址,但就像我说的一样,并没有方法可以保证。
| ||||||||||||
方法三 - 用SNMP扩展API | ||||||||||||
我要谈的第三种方法是通过使用windows中的SNMP(Simple Network Management Protocol,简单网络管理协议)扩展来得到系统的地址。据个人经验,SNMP很复杂,不过下面的代吗应该可以轻松读懂。基本上这些步骤和使用Netbios时的相同: 得到适配器列表 查询每一个适配器的类型和MAC地址 将实际是NIC的适配器保存 我个人并不太熟悉SNMP,但一如我之前所讲,代码非常的清晰。参考以下的地址可获得更多信息: SNMP Functions SNMP Variable Types and Request PDU Types SNMP Structures
|
相关文章推荐
- 获取系统网络MAC地址的三种方法
- 获取系统网络MAC地址的三种方法
- windows及Linux系统下获取IP及MAC地址的方法
- DOS命令下的三种获取远程主机MAC地址的方法
- 取得系统中网卡MAC地址的三种方法
- 取得系统中网卡MAC地址的三种方法vc++技
- 取得系统中网卡MAC地址的三种方法
- DOS命令下获取远程主机MAC地址的三种方法
- 获取MAC地址最有效方法作为软件加密时用到在不同系统平台下
- Android6.0系统MAC地址获取的方法
- 取得系统中网卡MAC地址的三种方法
- DOS命令下的三种获取远程主机MAC地址的方法
- DOS命令下获取远程主机MAC地址的三种方法
- DOS命令下获取远程主机MAC地址的三种方法
- windows下获取MAC地址的三种方法
- 取得系统中网卡MAC地址的三种方法
- 取得系统中网卡MAC地址的三种方法
- 系统自动设置网络参数即自动获取IP的方法
- Linux C 网络编程 - 获取本地 ip 地址,mac,通过域名获取对应的 ip
- Android中获取网络图片的三种方法