获取以太网卡的MAC地址(附源代码)
- 格式:docx
- 大小:18.76 KB
- 文档页数:2
易语⾔调⽤api枚举⽹卡名称并且获取信息的代码
DLL命令表
.版本 2
.DLL命令 GetProcAddress, 整数型, "kernel32", "GetProcAddress", , 返回函数地址
.参数 hModule, 整数型
.参数 lpProcName, ⽂本型
.DLL命令 GetModuleHandle, 整数型, "kernel32", "GetModuleHandleA", , 获取⼀个应⽤程序或动态链接库的模块句柄如执⾏成功成功,则返回模块句柄。零表⽰失败。会设置GetLastError
.参数 lpModuleName, ⽂本型, , 指定模块名,这通常是与模块的⽂件名相同的⼀个名字。例如,NOTEPAD.EXE程序的模块⽂件名就叫作NOTEPAD;
.DLL命令 IsBadCodePtr, 整数型, "kernel32", "IsBadCodePtr", , 确定读指针的合法性
.参数 lpfn, 整数型
.DLL命令 LoadLibrary, 整数型, "kernel32", "LoadLibraryA", , 载⼊指定的动态链接库,并将它映射到当前进程使⽤的地址空间。⼀旦载⼊,即可访问库内保存的资源成功则返回库模块的句柄,零表⽰失败。会设置GetLastError .参数 lpLibFileName, ⽂本型, , 指定要载⼊的动态链接库的名称。采⽤与CreateProcess函数的lpCommandLine参数指定的同样的搜索顺序;
常量数据表
.版本 2
.常量 ERROR_BUFFER_OVERFLOW, "111", , 111
如何查看电脑网卡的MAC地址
电脑网卡的MAC地址是硬件设备的唯一标识符,用于在局域网中识别和连接设备。在一些情况下,您可能需要查看电脑的网卡MAC地址,以便进行网络配置或故障排除。在本文中,我们将介绍几种不同的方法来查看电脑网卡的MAC地址。
1. 使用命令提示符(Windows)
-打开“命令提示符”应用程序。您可以在开始菜单中“命令提示符”。
- 输入“ipconfig /all”并按下回车键。此命令将显示计算机上的所有网络适配器的详细信息。
-查找以太网适配器或无线局域网适配器的“物理地址”项。该项旁边的数值就是MAC地址。
2. 使用PowerShell(Windows)
- 打开“PowerShell”应用程序。您可以在开始菜单中“PowerShell”。
- 输入“Get-NetAdapter”并按下回车键。这会显示计算机上的所有网络适配器的列表。
- 查找以太网适配器或无线局域网适配器的“MacAddress”项。该项的值是MAC地址。
3. 使用系统偏好设置(Mac)
-点击屏幕上方的“苹果”图标,并选择“系统偏好设置”。
-在系统偏好设置窗口中,点击“网络”。
-在网络设置窗口中,选择左侧的网络适配器(例如以太网或Wi-Fi)。
-点击右侧的“高级”按钮。
-在高级设置窗口的“硬件”选项卡中,您可以找到“MAC地址”。该项的数值就是MAC地址。
4. 使用ifconfig命令(Linux)
- 打开终端应用程序。在大多数Linux发行版中,您可以在应用菜单中找到终端。
- 输入“ifconfig”并按下回车键。该命令会显示所有网络接口的详细信息。
MAC地址
MAC地址1212
MAC(Media Acc ess Control, 介质访问控制)MAC地址是烧录在N et work Interf ace Card(网卡,NIC)里的.MAC地址,也叫硬件地址,是由48比特长(6字节),16进制的数字组成.0-23位叫做组织唯一标志符(organizationally unique ,是识别LAN(局域网)节点的标识.24-47位是由厂家自己分配。其中第40位是组播地址标志位。网卡的物理地址通常是由网卡生产厂家烧入网卡的EPROM(一种闪存芯片,通常可以通过程序擦写),它存储的是传输数据时真正赖以标识发出数据的电脑和接收数据的主机的地址。
也就是说,在网络底层的物理传输过程中,是通过物理地址来识别主机的,它一般也是全球唯一的。比如,著名的以太网卡,其物理地址是48bit(比特位)的整数,如:44-45-53-54-00-00,以机器可读的方式存入主机接口中。以太网地址管理机构(除了管这个外还管别的)(I EEE)(I EEEE:电气和电子工程师协会)将以太网地址,也就是48比特的不同组合,分为若干独立的连续地址组,生产以太网网卡的厂家就购买其中一组,具体生产时,逐个将唯一地址赋予以太网卡。
形象的说,MAC地址就如同我们身份证上的身份证号码,具有全球唯一性。
如何获取本机的MAC?
对于数量不多的几台机器,我们可以这样获取MAC地址:在W indows 98/Me中,依次单击“开始”→“运行” →输入“winipcf g”→回车。即可看到MAC地址。
IP Helper API 简介2
2009-01-06 14:29:55| 分类:IP地址 | 标签: |字号大中小订阅
IP Helper 是一套用于管理本地网络设置的API(应用程序编程接口)它的功能十分强大,通过使用这一套API,你可以方便的改变计算机的网络设置或者提取有关的信息。而且它还提供了一种消息机制,能够在本地计算机的网络设置发生改变时通知你的应用程序。也就是说以前设置IP,掩码等等另人难以入眠的种种烦琐的工作现在都可以轻松搞定了。而且实际上,它不仅仅能够提取本机的网络设置信息,还能够获得网络上其它计算机的IP使用情况和MAC地址。这正是后面另一篇文章的例子程序中要使用的功能。
哪儿可以搞到IP Helper API?
Windows 98以上的所有操作系统在系统目录的system32下都带有iphlpapi.dll这个库文件,而且对于NT 4.0在加装了Service Pack 2以后也就有了这个库文件。这只能说明我们的程序可以在这些系统上运行而不需要额外的库文件,但是对于C程序员来说还必须有相应的头文件等等东西。这个东东网上不太多,在华中理工和清华9#的FTP上有它的头文件,文件很小,只有几K(头文件而已,大不到哪儿去)。当然,你也可以问微软要,下载SDK或者是定购SDK光盘(这是我梦想的事情)。最后是对MSDN的一个勘误:MSDN所声称的静态链接库iphlpapi.lib是不存在的(至少我没有找到),还是老老实实的使用动态库吧。
从最简单的开始
最简单的当然是看看我们计算机上的网络设置是什么而不要动手修改。附表中列出了一个简单的网络设置查看程序,在这个程序中我分类使用了主要的API函数,为了交代问题而不让你陷入到MFC的汪洋大海中去,我把它做成了控制台界面的,而且做了详尽的注释,你可以把其中的代码剪切粘贴下来在任何地方使用。让我来解释一下这些代码:
查看本机和局域网pc的MAC地址的常用方法
如何查看局域网内其他计算机的MAC地址和IP
方法1:首先要知道那个计算机的某个信息。如果知道计算机名的话,可以PING 计算机名,这样就会知道IP,然后再用 NBTSTAT -a IP,就能知道物理地址。如果知道IP的话,直接用nbtstat -a IP,就能知道所有的。
方法2:DOS命令批量统计局域网内各台电脑的IP地址和其相对应的MAC地址,这样的好处是可以便捷、准确的控制管理每台电脑,发现某台电脑中毒或者数据流量异常能及时排查、封网。
能实现这种功能的工具在网上有很多,例如:超级网管(SuperLANadmin)等等,喜欢的朋友可以自己搜索一下。在这里我主要谈的是调用本机DOS命令来实现上述结果,毕竟我们不可能天天把工具带在身边。
地址解析协议(ARP)用于实现IP地址到网络接口硬件地址的映射,该命令只有在安装了 TCP/IP 协议之后才可用。当某主机要向以太网中另一台主机发送IP数据时,它首先根据目的主机的IP地址在ARP高速缓存中查询相应的以太网地址,ARP高速缓存是主机维护的一个IP地址到相应的以太网地址的映射表。如果查到匹配的结点,则相应的以太网地址被写入以太网帧首部,数据包被加入到输入到输出列队等待发送。如果查询失败,ARP会先保留等待发送的IP数据包,然后广播一个询问目的主机硬件地址的ARP报文,等收到回答后再把IP数据包发送出去。
命令如下:运行cmd.exe后执行:
arp -a
回车,一只烟的功夫就会看到收集好列表。
FOR对一组文件逐一运行一条命令。该命令可用在批处理文件中,也可命令提示符下直接调用。
ARP( 地址解析协议)是用于将IP地址解析为MAC地址的协议,以便在局域网上进行通信。下面是ARP请求和相应的具体过程:
1.(首先,发送方主机A要发送数据给目标主机B,但是A并不知道B的MAC地址。A会检查本地的ARP缓存表,看是否已经有B的IP地址对应的MAC地址。如果有,A就可以直接发送数据了。如果没有,A需要发送ARP请求来获取B的MAC地址。
2.(A创建一个ARP请求包,包含以下几个字段:
(((-(目标MAC地址:全0 广播地址,表示发送给所有主机)
(((-(目标IP地址:B的IP地址
(((-(源MAC地址:A的MAC地址
(((-(源IP地址:A的IP地址
(((-(ARP请求操作码:1 表示ARP请求)
3.(A将ARP请求包封装在以太网帧中,并将目标MAC地址设置为广播地址 全FF),以太网帧的目标IP地址设置为B的IP地址,源MAC地址设置为A的MAC地址,源IP地址设置为A的IP地址。然后A将该帧发送到本地网络上。
4.(所有在本地网络上的主机都会收到这个ARP请求包,但是只有IP地址与请求中的目标IP 地址相同的主机 即B)会作出响应。
5.(B接收到ARP请求包后,检查请求包中的目标IP地址是否与自己的IP地址相匹配。如果匹配,B将创建一个ARP响应包,包含以下几个字段:
(((-(目标MAC地址:A的MAC地址
(((-(目标IP地址:A的IP地址
(((-(源MAC地址:B的MAC地址
(((-(源IP地址:B的IP地址
(((-(ARP响应操作码:2 表示ARP响应)
6.(B将ARP响应包封装在以太网帧中,并将目标MAC地址设置为发送ARP请求的A的MAC 地址,以太网帧的目标IP地址设置为A的IP地址,源MAC地址设置为B的MAC地址,源IP地址设置为B的IP地址。然后B将该帧发送到本地网络上。
以太网地址(MAC)
2010-02-06 2:28
以太网采用介质访问控制(Medh Access Control,MAC)地址进行寻址,MAC地址被烧人每个以太网网卡(Network Interface Card,NIC)中。
MAC地址也叫硬件地址,它采用48位(6字节)的十六进制格式。组织唯一标识符(OUI)是由IEEE分配给单位组织的,它包含24位(3字节)。各个单位组织依次被分配一个全局管理地址(24位,或3字节),对于厂家生产的每一块网卡来说,这个地址是唯一的(当然,这不能完全保证)。请仔细看一看图,高位是individual/Group(VG)位,当它的值为0时,就可以认为这个地址实际上是设备的MAC地址,它可能出现在MAC报头的源地址部分。当它的值为1时,就可以认为这个地址表示以太网中的广播地址或组播地址,或者表示TR和FDDI中的广播地址或功能地址。下一位是G/L位(也称为U/L,这里的U表示全局)。当这一位设置为0时,就表示一个全局管理地址(由IEEE分配),当这一位为1时,就表示一个在管理上统治本地的地址
(就像在DECnet中一样)。以太网地址的后24位表示本地管理的或厂商分配的代码。厂家制造的第一块网卡的这一部分地址通常以24个0开头,最后-块网卡则以24个1结束(共有16777216块网卡)。在实际中可以发现,许多厂商使用同样的6个十六进制数字,作为同一块网卡上序列号的最后6个数字。
通过snmp协议获取mac地址
14MAC地址配置以太网交换机利用MAC地址表的信息在数据链路层对报文进行快速寻址转发,本文是对MAC地址的配置方法进行描述14.1理解MAC地址表14.1.1概述通过识别报文的数据链路层信息对报文转发是以太网交换机的主要功能(称为二层转发功能),以太网交换机通过报文所携带的目的MAC地址信息将报文转发到相应的端口,以太网交换机采用MAC地址表存储报文转发时所需要的目的MAC 地址与端口信息关系。
以太网交换机的MAC地址表中所有的MAC地址都和VLAN相关联,不同的VLAN允许相同的MAC地址。
每个VLAN都维护它自己逻辑上的一份地址表。
一个VLAN已学习的MAC地址,对于其他VLAN而言可能是的,仍然需要学习。
以太网交换机的MAC地址包含以下信息图1.MAC地址表项构成n 状态表示地址表项为动态地址、静态地址或过滤地址。
n VLANMAC地址所属的VLAN nMAC地址表项的MAC地址信息n端口MAC地址对应的端口信息以太网交换机的MAC地址表中的表项通过以下两种方式进行更新和维护n动态地址学习n手工配置地址以太网交换机在转发报文时通过报文的目的MAC地址以及报文所属的VLAN ID的信息在MAC地址表中查找相应的转发输出端口,根据查找的结果采取单播、组播或广播的方式转发报文n单播转发以太网交换机能
够在MAC地址表中查到与报文的目的MAC地址和VLAN ID相对应的表项并且表项中的输出端口是唯一的,报文直接从表项对应的端口输出。 n组播转发以太网交换机能够在MAC地址表中查到与报文的目的MAC地址和VLAN ID相对应的表项并且表项中对应一组输出端口,报文直接从这组端口输出。
查看本机和局域网pc的MAC地址的常用方法
如何查看局域网内其他计算机的MAC地址和IP
方法1:首先要知道那个计算机的某个信息。如果知道计算机名的话,可以PING 计算机名,这样就会知道IP,然后再用 NBTSTAT -a IP,就能知道物理地址。如果知道IP的话,直接用nbtstat -a IP,就能知道所有的。
方法2:DOS命令批量统计局域网内各台电脑的IP地址和其相对应的MAC地址,这样的好处是可以便捷、准确的控制管理每台电脑,发现某台电脑中毒或者数据流量异常能及时排查、封网。
能实现这种功能的工具在网上有很多,例如:超级网管(SuperLANadmin)等等,喜欢的朋友可以自己搜索一下。在这里我主要谈的是调用本机DOS命令来实现上述结果,毕竟我们不可能天天把工具带在身边。
地址解析协议(ARP)用于实现IP地址到网络接口硬件地址的映射,该命令只有在安装了 TCP/IP 协议之后才可用。当某主机要向以太网中另一台主机发送IP数据时,它首先根据目的主机的IP地址在ARP高速缓存中查询相应的以太网地址,ARP高速缓存是主机维护的一个IP地址到相应的以太网地址的映射表。如果查到匹配的结点,则相应的以太网地址被写入以太网帧首部,数据包被加入到输入到输出列队等待发送。如果查询失败,ARP会先保留等待发送的IP数据包,然后广播一个询问目的主机硬件地址的ARP报文,等收到回答后再把IP数据包发送出去。
命令如下:运行cmd.exe后执行:
for /L %i IN (1,1,254) DO ping -w 2 -n 1 192.168.1.%i
如何查看局域网内其他计算机的MAC地址和IP
方法1:首先要知道那个计算机的某个信息。如果知道计算机名的话,可以PING 计算机名,这样就会知道IP,然后再用 NBTSTAT -a IP,就能知道物理地址。如果知道IP的话,直接用nbtstat -a IP,就能知道所有的。
方法2:DOS命令批量统计局域网内各台电脑的IP地址和其相对应的MAC地址,这样的好处是可以便捷、准确的控制管理每台电脑,发现某台电脑中毒或者数据流量异常能及时排查、封网。
能实现这种功能的工具在网上有很多,例如:超级网管(SuperLANadmin)等等,喜欢的朋友可以自己搜索一下。在这里我主要谈的是调用本机DOS命令来实现上述结果,毕竟我们不可能天天把工具带在身边。
地址解析协议〔ARP〕用于实现IP地址到网络接口硬件地址的映射,该命令只有在安装了 TCP/IP 协议之后才可用。当某主机要向以太网中另一台主机发送IP数据时,它首先根据目的主机的IP地址在ARP高速缓存中查询相应的以太网地址,ARP高速缓存是主机维护的一个IP地址到相应的以太网地址的映射表。如果查到匹配的结点,那么相应的以太网地址被写入以太网帧首部,数据包被参加到输入到输出列队等待发送。如果查询失败,ARP会先保存等待发送的IP数据包,然后播送一个询问目的主机硬件地址的ARP报文,等收到答复后再把IP数据包发送出去。
命令如下:运行cmd.exe后执行:
for /L %i IN (1,1,254) DO ping -w 2 -n 1 192.168.1.%i
[编辑本段]
MAC地址的作用
IP地址就如同一个职位,而MAC地址则好像是去应聘这个职位的人才,职位既可以让甲坐,也可以让乙坐,同样的道理一个节点的IP地址对于网卡是不做要求,基本上什么样的厂家都可以用,也就是说IP地址与MAC地址并不存在着绑定关系。本身有的计算机流动性就比较强,正如同人才可以给不同的单位干活的道理一样的,人才的流动性是比较强的。职位和人才的对应关系就有点像是IP地址与MAC地址的对应关系。比如,如果一个网卡坏了,可以被更换,而无须取得一个新的IP地址。如果一个IP主机从一个网络移到另一个网络,可以给它一个新的IP地址,而无须换一个新的网卡。当然MAC地址除了仅仅只有这个功能还是不够的,就拿人类社会与网络进行类比,通过类比,我们就可以发现其中的类似之处,更好地理解MAC地址的作用。无论是局域网,还是广域网中的计算机之间的通信,最终都表现为将数据包从某种形式的链路上的初始节点出发,从一个节点传递到另一个节点,最终传送到目的节点。数据包在这些节点之间的移动都是由ARP(Address Re solution Protocol:地址解析协议)负责将IP地址映射到MAC地址上来完成的。其实人类社会和网络也是类似的,试想在人际关系网络中,甲要捎个口信给丁,就会通过乙和丙中转一下,最后由丙转告给丁。在网络中,这个口信就好比是一个网络中的一个数据包。数据包在传送过程中会不断询问相邻节点的MAC地址,这个过程就好比是人类社会的口信传送过程。相信通过这两个例子,我们就可以进一步理解MAC地址的作用。
地址没有变,而它的MAC地址已经不是原来那个了。由于局域网的网络流通不是根据IP地址进行,而是按照MAC地址进行传输。所以,那个伪造出来的MAC地址在A上被改变成一个不存在的MAC地址,这样就会造成网络不通,导致A不能Ping通B!这就是一个简单的ARP欺骗。
【实验体会】
这次实验最大的感触是体会到了网络通信过程的趣味性。在做ping同学IP的实验时,我发现抓到的包之间有紧密的联系,相互的应答过程很像实际生活中人们之间的对话。尤其是ARP帧,为了获得对方的MAC 地址,乐此不疲地在网络中广播“谁有IP为XXX的主机”,如果运气好,会收到网桥中某个路由器发来的回复“我知道,XXX的MAC地址是YYY!”。另外,通过ping同学主机的实验,以及对实验过程中问题的分析,使我对之前模糊不清的一些概念有了全面的认识,如交换机、路由器的区别与功能,局域网各层次的传输顺序与规则等。还有一点就是,Wireshark不是万能的,也会有错误、不全面的地方,这时更考验我们的理论分析与实践论证能力。
成绩优良中及格不及格
教师签名:日期:
【实验作业】
1 观察并分析通常的以太网帧
以太网帧格式
目前主要有两种格式的以太网帧:Ethernet II(DIX )和IEEE 。我们接触过的IP、ARP、EAP和QICQ协议使用Ethernet II帧结构,而STP协议则使用IEEE 帧结构。
Ethernet II是由Xerox与DEC、Intel(DIX)在1982年制定的以太网标准帧格式,后来被定义在RFC894中。IEEE 是IEEE 802委员会在1985年公布的以太网标准封装结构(可以看出二者时间相差不多,竞争激烈),RFC1042规定了该标准(但终究二者都写进了IAB管理的RFC文档中)。