获取网卡的MAC地址
- 格式:doc
- 大小:55.00 KB
- 文档页数:3
怎么查看电脑网卡的mac地址怎么查看电脑网卡的mac地址导语:通常直接查看本地连接状态里面就可以看到MAC地址和IP 地址。
以下是小编分享的有关电脑网络知识,希望对您有所帮助。
怎么查看电脑网卡的MAC地址?方法一:通过命令行查看电脑网卡的MAC地址1、点击开始 > 运行 > 输入:cmd > 回车(或点击确定)。
2、在弹出的命令提示符窗口中输入“ipconfig /all”并回车。
(注:ipconfig 命令为查看IP配置信息,参数“all”表示查看所有网卡的全部配置信息)3、在出现的所有网卡的全部配置信息中,找到本地连接中的“Physical Address(物理地址)”所对应的就是我们所要的MAC地址。
方法二:通过查看本地连接状态查看电脑网卡的MAC地址1、右键网上邻居选择“属性”(PS:WIN7系统以上的好像还要点击“更改适配器设置”才能看到本地连接),接着右键“本地连接”选择“状态”。
2、在出现的“本地连接状态”框中点击“支持”>“详细信息”就可以直接看到电脑的MAC地址了。
(PS:WIN7以上系统好像是没有“支持”选项,“详细信息”按钮是在“常规”选项中。
) 如何设置无线MAC地址过滤?无线MAC地址过滤应用介绍无线MAC地址过滤功能,就是允许或禁止指定的终端(MAC地址)连接无线信号,实际上就是连接信号权限的`黑白名单设置。
现在万.能.钥.匙等无线蹭网软件的使用,可能会导致无线密码泄露,网络被蹭,MAC地址过滤是非常有效的防范方法。
本文介绍无线MAC地址过滤的设置方法。
注意:迅捷(FAST)新界面的设备只能禁止特定终端连接信号。
无线MAC地址过滤设置方法设置前请务必确认终端的MAC地址(MAC地址如何确认?)1.选择过滤规则登录路由器管理界面,点击“无线设置”>“无线MAC地址过滤”,过滤规则选择“允许列表中生效的MAC地址访问本无线网络”。
2.添加MAC地址过滤条目点击“添加新条目”,填写手机MAC允许条目。
如何查看电脑网卡的MAC地址
1.windows XP 操作系统和windows 2000 、windows 2003系统查看MAC地址方法。
1)使用命令行方式:
在开始菜单运行中输入命令cmd,如图
确定后进入DOS界面。
在DOS界面下输入ipconfig/all命令,如图
回车后即可看到电脑网卡的MAC地址,如图
需要注意的是,因现在的电脑有些包含无线网卡,无线网卡同样具有MAC地址,请仔细查看上方适配器名称,一般为本地连接。
2)使用可视化操作方式:
如果你的电脑在电脑右下角有如下图红框中本地连接状态图标的显示,
双击该图标,然后选择下图中红框选择的“详细信息”按钮
然后看到如下图中红框所示实际地址即为电脑网卡的MAC地址。
2.windows VISTA和windows 7 操作系统查看MAC地址方法:
1)命令行方式:
在开始菜单
中输入命令cmd
在如图所示程序中的cmd图标上单击鼠标右键选择以管理员身份运行
其余步骤如同windowsXP系统下一样进行操作。
2)可视化操作方式
以windows 7为例,开始菜单,控制面板,网络和Internet下的查看网络状态和任务
鼠标左键单击如图红框所示本地连接
即可查看到电脑网卡的MAC地址。
如何查看电脑网卡的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”并按下回车键。
该命令会显示所有网络接口的详细信息。
- 查找以太网适配器或无线局域网适配器的“HWaddr”项。
该项后的数值就是MAC地址。
5. 使用ip命令(Linux)-打开终端应用程序。
- 输入“ip link show”并按下回车键。
该命令将显示计算机上的所有网络接口的信息。
- 查找以太网适配器或无线局域网适配器的“link/ether”项。
如何查看MAC地址
网卡的MAC地址:每块网卡在生产出来后,除了基本的功能外,都有一个唯一的编号标识自己。
全世界所有的网卡都有自己的唯一标号,是不会重复的。
这个MAC地址是由48位2进制数组成的,通常分成6段,用16进制表示就是类似00-D0-09-A1-D7-B7的一串字符。
如何查看mac地址:
方法一、右击“网上邻居”选择“属性”--右击“本地连接”选择“状态”--选择“支持”点“详细信息”,里面的“实际地址”即为本机网卡的mac地址。
(如图一)
方法二、在Windows 98/Me中,依次单击“开始”→“运行” →输入“winipcfg”→回车。
在Windows 2000/XP中,依次单击“开始”→“运行”→输入“CMD”→回车→输入“ipconfig /all”→回车。
里面的Physical Address即为本机的mac地址。
(如图2)
(图一)
(图2)
Win7
1. 开始——运行——输入cmd——输入ipconfig/all——有个本地连接的部分,那个物理地址或者是Physical Address就是
2(可以更改).打开网络属性——更改适配器设置——本地连接属性——配置——高级——network address就是,旁边可修改。
怎么查看电脑网卡MAC地址
在某些特定应用中,需要使用电脑或终端的MAC地址。
那么怎么查看电脑网卡MAC地址?店铺介绍Windows系统的网卡MAC地址查看方法,下面大家跟着店铺一起来了解一下吧。
查看电脑网卡MAC地址方法一:使用ipconfig命令轻松查询电脑mac地址
进入电脑桌面,从左下角的开始→运行,在运行命令框中输入cmd命令,之后回车进入cmd命令操作界面,在里面输入ipconfig /all回车即可看到网卡与本地IP等诸多网络设备相信信息,其中Physical Address名称后面显示的就是mac地址,如下图:开始运行输入cmd进入运行命令界面
进入运行命令窗口内部以后,我们直接输入ipconfig /all命令回车确认之后即可显示相关网卡信息,如下图中即可找到mac地址,如下图:
ipconfig命令找到mac地址
查看电脑网卡MAC地址方法二:通过本地连接查找mac地址
进入电脑桌面,在电脑桌面右下角,我们可以看到网络标注,如下图:
桌面右下角的网络标注
将鼠标放置在如上图所示的网络标注中,双击鼠标左键,会弹出“本地连接状态”界面,我们之后在本地连接状态框中切换到支持项,然后选择详细信息如下图:
如上图,点击详细信息,弹出如下界面:
网络连接详细信息中就可以找到mac地址
如上图,在网络连接相信信息中的第一栏,实际地址后面的数值就是mac地址。
如何查看mac地址方法还有很多,比如不少系统开机系统显示器界面中也可以看到mac地址,每台电脑都有一个独一无二的mac地址,这主要有网卡厂商提供,有兴趣的朋友自己去查查看自己电脑的
MAC地址是多少。
笔记本如何查看mac地址
MAC地址⼜称为⽹卡的物理地址,每台电脑都有⼀个唯⼀的MAC地址,也正因为如此,在路由器⾼级安全设置以及⼀些⾼级⽹络应⽤中,通常会通过MAC地址绑定电脑,这样可以⼤⼤提⾼⽹络安全。
究竟笔记本怎么查看mac地址?其实很简单,其查看⽅法与台式电脑都是⼀样的,通常有2种⽅法,以下为⼤家介绍下。
笔记本查看mac地址⽅法⼀:
打开⽹络和共享中⼼,然后进⼊本地连接,之后在⽹络连接属性中,点击详细信息,⾥⾯就可以看到⼀项物理地址信息,这个就是MAC地址,如下图所⽰:
笔记本查看mac地址⽅法⼆:
1、从开始菜单中,调出运⾏对话框(Win8⽤户可以直接使⽤Win+R快捷键呼出),然后键⼊ cmd 命令,完成后按回车键,如下图所⽰:
2、之后即可进⼊cmd命令操作框,我们键⼊命令:iPconfig /all 命令,完成后,按回车键运⾏,之后即可在⾥⾯找到物理地址信息,这⾥就是MAC地址了。
推荐使⽤命令⾏查看,不过你需要知道你⽤的是哪哥⽹卡上的⽹,笔记本⼀般都是两个⽹卡,⼀个⽆线⽹卡,⼀个有线⽹卡。
⼤家可以通过⽹上邻居查看⽤的的是哪个⽹卡上⽹,就定位到那个⽹卡查看信息就可以了。
MAC地址也叫物理地址、硬件地址或链路地址,由⽹络设备制造商⽣产时写在硬件内部,它与⽹络⽆关,⽤户⽆法更改,对于⼀些⾼级⽹络应⽤中,会⽐较有⽤。
如何获知本机的MAC地址
MAC地址是Ethernet协议使用的地址。
MAC地址是Ethernet网卡上带的地址,长度为48位。
每个Ethernet网卡生产厂家必须向IEEE组织申请一组MAC地址,在生产网卡时在网卡的串行EEPROM中写入一个唯一的MAC地址。
任何两个Ethernet网卡的MAC地址,不管是哪一个厂家生产的都不应相同。
Ethernet芯片厂家不必负责MAC地址的申请,MAC地址存在于每一个Ethernet包中,是Ethernet包头的组成部分,Ethernet交换机根据Ethernet包头中的MAC源地址和MAC目的地址实现包的交换和传递。
那么我们如何知道自己机器网卡的MAC地址呢?其实很简单。
只要一两步就可以完成。
下面就让我们一步步看看吧!
我们以WINDOWSXP为例(windows98、windows2000的方法和xp的一样)。
单击“开始”菜单,点击“运行”,如下图。
弹出“运行”对话框,输入"command"命令(不包括引号),点击“确定”。
弹出如下图的窗口。
输入“ipconfig /all”,然后“回车”。
出现如下图的显示。
这样我们就可以看到本机网卡的MAC地址了。
还有其它信息。
比如:“本机IP”、“子网掩码”、“默认网关”、“DNS”等。
如何获取网卡的MAC地址获取网卡的MAC地址可以通过以下几种方法:1.使用操作系统提供的命令行工具:不同的操作系统提供了不同的命令行工具来获取网卡的MAC地址。
下面分别介绍Windows和Linux操作系统下的方法。
- Windows操作系统:在命令提示符或PowerShell中输入"ipconfig /all"命令,会列出所有网络接口的详细信息,包括MAC地址。
- Linux操作系统:在终端中输入"ifconfig"命令,会列出所有网络接口的详细信息,包括MAC地址。
2.使用编程语言获取:可以使用各种编程语言(如Python、Java、C++等)提供的网络编程库来获取网卡的MAC地址。
下面以Python为例,演示如何通过编程获取网卡的MAC地址:```pythonimport subprocessimport redef get_mac_address(:result = subprocess.run(["ipconfig", "/all"],capture_output=True, text=True)output = result.stdoutmac_pattern = r"Physical Address[ .]*: (.*)"mac_address = re.findall(mac_pattern, output)[0].replace("-", ":")return mac_addressmac = get_mac_addressprint(mac)```这段代码通过执行"ipconfig /all"命令,并使用正则表达式匹配输出中的MAC地址,最终返回网卡的MAC地址。
3.使用网络管理工具:可以使用一些网络管理工具来获取网卡的MAC地址,这些工具通常提供了更丰富的功能和更友好的界面,比如Wireshark、NetCut等。
如何获取网卡的MAC地址获取网卡的MAC地址是一个常见的需求,在不同的操作系统中,可以使用不同的方法来获取。
下面将分别介绍在Windows、macOS和Linux系统中获取网卡MAC地址的方法。
在Windows系统中,可以通过以下步骤来获取网卡的MAC地址:1.打开「开始菜单」,在栏中输入「命令提示符」并打开命令提示符窗口。
2. 在命令提示符窗口中输入「ipconfig /all」并按下回车键。
3.系统会列出所有的网络适配器信息,包括网卡的物理地址(MAC地址)。
在相应的网络适配器部分,查找「物理地址」或「MAC地址」字段,即可找到对应的MAC地址。
在macOS系统中,可以通过以下步骤来获取网卡的MAC地址:1.打开「应用程序」文件夹,找到「实用工具」文件夹并进入。
2.打开「终端」应用程序。
3. 在终端中输入「ifconfig」并按下回车键。
4. 终端会列出所有的网络适配器信息,包括网卡的物理地址(MAC地址)。
在相应的网络适配器部分,查找「ether」字段,即可找到对应的MAC地址。
在Linux系统中,可以通过以下步骤来获取网卡的MAC地址:1.打开终端应用程序。
2. 输入以下命令并按下回车键:「ifconfig -a」或「ip link」。
3. 终端会列出所有的网络适配器信息,包括网卡的物理地址(MAC 地址)。
在相应的网络适配器部分,查找「ether」字段,即可找到对应的MAC地址。
除了以上的方法,还可以通过编程的方式来获取网卡的MAC地址。
不同编程语言提供了相应的API或库函数来获取网卡信息。
以下是使用Python编程语言获取MAC地址的示例代码:```pythonimport uuiddef get_mac_address(:mac = uuid.getnodemac_str = ':'.join(("%012X" % mac)[i:i+2] for i in range(0, 12, 2))return mac_strmac_address = get_mac_addressprint(mac_address)```这段代码使用了Python的uuid库中的getnode函数来获取网卡的MAC地址。
什么命令可以查看网卡的MAC地址什么命令可以查看网卡的MAC地址如何查看MAC地址Mac地址又称为物理地址(Physical Address)。
不同的操作系统下,查看的命令稍有不同。
在Windows操作系统下,首先进入MS-DOS(或命令操作符)状态,然后输入查看MAC 地址命令,即可获得适配器地址(即MAC地址)。
如何进入MS-DOS:在《开始菜单》——《运行》中执行下面的命令win98: commandwin2000/xp/NT:cmd如何查看MAC地址:在MS-DOS状态下,输入下表的命令操作系统命令Windows2000ipconfig /allWindowsXPipconfig /allWindowsNTipconfig /allWindows98ipconfig /all或者winipcfgWindowsMEipconfig /all或者winipcfgLinux/sbin/ifconfig -a如何查看MAC地址:在MS-DOS状态下,输入下表的命令操作系统命令Windows2000 ipconfig /allWindowsXP ipconfig /allWindowsNT ipconfig /allWindows98 ipconfig /all 或者winipcfg WindowsME ipconfig /all 或者winipcfgLinux /sbin/ifconfig -a下面是在window2000下查看MAC地址的例子。
C:\>ipconfig /allWindows 2000 IP ConfigurationEthernet adapter 本地连接:Connection-specific DNS Suffix . :Deion : Intel(R) PRO/100 VE Network Connection Physical Address. . . . . . . . . : 05-16-DC-59-C2-34 DHCP Enabled. . . . . . . . . . . : NoIP Address. . . . . . . . . . . . : 202.194.145.33 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : 202.194.145.254 DNS Servers . . . . . . . . . . . : 202.194.145.1。
取得系统中网卡MAC地址的三种方法获取系统中网卡MAC地址的方法有多种,以下列举其中三种常见的方法:在Windows系统中,可以使用命令行工具ipconfig来获取网卡MAC地址。
具体步骤如下:- 打开命令提示符窗口。
可以通过快捷键win+R打开运行窗口,输入cmd并按下回车键,或者在开始菜单中找到命令提示符并点击打开。
- 在命令提示符窗口中,输入指令ipconfig /all并按下回车键。
该指令将显示计算机的所有网络接口信息,包括网卡MAC地址。
-在显示的网络接口信息中,找到对应的网卡,查找其物理地址字段,即可获取其MAC地址。
在Linux系统中,可以使用命令行工具ifconfig来获取网卡MAC地址。
具体步骤如下:- 打开终端窗口。
可以通过快捷键Ctrl+Alt+T打开终端。
- 在终端窗口中,输入指令ifconfig并按下回车键。
该指令将显示计算机的所有网络接口信息,包括网卡MAC地址。
- 在显示的网络接口信息中,找到对应的网卡,查找其HWaddr字段,即可获取其MAC地址。
通过编程语言,可以编写程序来获取系统中网卡的MAC地址。
以下是使用Python语言获取MAC地址的示例代码:```pythonimport uuiddef get_mac_address(:mac = uuid.UUID(int=uuid.getnode().hex[-12:]return ":".join([mac[e:e+2] for e in range(0, 12, 2)])mac_address = get_mac_addressprint("MAC Address:", mac_address)```该代码通过调用uuid库中的UUID类和getnode函数,获取系统中第一个网卡的MAC地址。
在Windows系统中,可以通过查找系统注册表来获取网卡的MAC地址。
具体步骤如下:- 逐个打开子项,并在右侧窗口中查找DriverDesc键。
如何查看电脑网卡的MAC地址在计算机网络中,网卡的MAC(Media Access Control)地址是一个唯一的硬件地址,用于识别网络设备。
在不同的操作系统中,查看网卡的MAC地址的方法可能会有所不同。
下面将介绍在Windows、Mac和Linux 操作系统中如何查看网卡的MAC地址。
Windows操作系统提供了图形界面和命令行两种方式来查看网卡的MAC地址。
1.图形界面方式:a. 打开控制面板,选择“网络和Internet”;b. 在“网络和Internet”页面中,选择“网络和共享中心”;c.在“网络和共享中心”页面中,点击左侧的“更改适配器设置”;d.右键点击所需的网络适配器,选择“状态”;e.在弹出的窗口中,点击“详细信息”按钮;f.在“物理地址”一项就是该网卡的MAC地址。
2.命令行方式:a. 在Windows操作系统中,打开命令提示符。
方法是按下键盘上的Win+R键,然后输入cmd后按回车键。
b. 在命令提示符窗口中,输入"ipconfig /all",按下回车键;c.在输出结果中,找到你的网卡名称。
在下方可以看到该网卡的物理地址,即MAC地址。
在Mac操作系统中,可以通过系统偏好设置或终端命令来查看网卡的MAC地址。
1.图形界面方式:a.点击苹果菜单栏的,选择“系统偏好设置”;b.在“系统偏好设置”窗口中,选择“网络”;c.在左侧的网络连接列表中选择所需的网络连接;d.在右侧的信息栏中,点击“高级”按钮;e.在“硬件”选项卡下,MAC地址一栏即是该网卡的MAC地址。
2.终端命令方式:a.打开终端应用程序;b. 输入命令"ifconfig",按下回车键;d. 在该标识下找到一行以"ether"开头的内容,该内容后面的即是该网卡的MAC地址。
在Linux操作系统中,可以通过命令行方式来查看网卡的MAC地址。
1.打开终端应用程序;2. 输入命令"ifconfig -a"或者"ip addr show",按下回车键;3. 在输出结果中,找到你的网卡标识,一般以"eth"或"wlan"开头;4. 在该行找到一行以"ether"开头的内容,该内容后面的即是该网卡的MAC地址。
如何查网卡的MAC地址要查看网络接口卡(NIC)的MAC地址,可以采取以下几种方法:方法一:使用命令行1. 在Windows操作系统中,打开命令提示符。
点击开始菜单,然后“命令提示符”,并选择它的图标。
2. 在命令提示符窗口中,输入“ipconfig /all”(不含引号)并按下回车键。
在Mac操作系统中,打开终端应用程序。
点击“应用程序”文件夹,在其中找到并打开“实用工具”文件夹,然后选择“终端”。
3. 在终端窗口中输入“ifconfig”(不含引号)并按下回车键。
以上的命令在Windows和Mac操作系统中都会显示网络接口卡的信息,包括MAC地址。
方法二:使用系统设置1. 在Windows操作系统中,点击开始菜单,然后选择“设置”图标。
在Mac操作系统中,点击苹果菜单,然后选择“系统偏好设置”。
2.在设置窗口中,点击“网络”选项。
3.在网络设置中,选择要查看MAC地址的网络接口卡。
4. 在Windows系统中,点击“高级选项”按钮。
在Mac系统中,点击“高级”按钮。
5.在网卡的高级设置中,可以找到MAC地址。
要注意的是,每个网卡都有一个唯一的MAC地址,它由十六进制字符组成,通常由六对由冒号或破折号分隔的字符表示(例如:12:34:56:78:9A:BC)。
在一些情况下,如果计算机上使用了多个网卡,可能需要查看特定网卡的MAC地址。
此时,用第一种方法时,可以在命令提示符窗口中使用“ipconfig /all ,findstr /C:"Physical Address"”(不含引号)命令,来查找特定网卡的MAC地址。
总结:。
查询mac地址的方法查询MAC地址的方法有多种,包括通过操作系统界面、命令行工具、软件应用和硬件设备等途径。
下面将详细介绍几种常用的方法。
方法一:使用操作系统界面1. 在Windows操作系统中,点击“开始”菜单,选择“设置”。
2.在“设置”窗口中,点击“网络和互联网”。
3.在“网络和互联网”窗口下方,点击“状态”。
4.在“状态”窗口中,点击“查看你的网络属性”。
5.在“网络”窗口中,滚动到底部,找到“物理地址”或“代理服务器”。
6.物理地址就是对应的MAC地址。
在MacOS操作系统中,可以通过以下步骤查询MAC地址:1.点击左上角的苹果图标,在弹出的下拉菜单中选择“系统偏好设置”。
2.在“系统偏好设置”窗口中,找到并点击“网络”。
3.在“网络”窗口中,选择当前正在使用的网络连接(如Wi-Fi、以太网等)。
4.点击右下角的“高级”按钮。
6.硬件地址就是对应的MAC地址。
方法二:使用命令行工具1. 打开命令提示符窗口(在Windows中,可以在开始菜单中“命令提示符”并打开;在MacOS中,可以打开“启动台”,“终端”并打开)。
2. 在命令提示符窗口中输入“ipconfig /all”(Windows)或“ifconfig”(MacOS),然后按下回车键。
3.在输出结果中找到对应的网络适配器,其中包含了MAC地址信息。
方法三:使用第三方软件应用1. 在Windows操作系统中,可以使用一些第三方软件应用来查询MAC地址,如Wireless Network Watcher、Angry IP Scanner等。
2. 在MacOS操作系统中,可以使用一些MAC地址扫描工具,如LanScan、Angry IP Scanner等。
方法四:查看硬件设备注意事项:1.MAC地址是一个由12个字符组成的唯一标识符,通常表示为6个十六进制数。
2.在查询MAC地址时,需要确定要查询的是哪个网络适配器的MAC地址(如Wi-Fi、有线网卡等)。
方法一:通过NetBIOS[Netbios is not supported on Windows Vista, Windows Server 2008, and subsequent versions of the operating system]#include <windows.h>#pragma comment(lib, "Netapi32.lib")namespace{bool GetAdapterInfo(int adapterNum, std::string& macOUT){NCB Ncb;memset(&Ncb, 0, sizeof(Ncb));Ncb.ncb_command = NCBRESET; // 重置网卡,以便我们可以查询Ncb.ncb_lana_num = adapterNum;if (Netbios(&Ncb) != NRC_GOODRET)return false;// 准备取得接口卡的状态块memset(&Ncb, sizeof(Ncb), 0);Ncb.ncb_command = NCBASTAT;Ncb.ncb_lana_num = adapterNum;strcpy((char *) Ncb.ncb_callname, "*");struct ASTAT{ADAPTER_STATUS adapt;NAME_BUFFER nameBuff[30];}adapter;memset(&adapter,sizeof(adapter), 0);Ncb.ncb_buffer = (unsigned char *)&adapter;Ncb.ncb_length = sizeof(adapter);if (Netbios(&Ncb) != 0)return false;char acMAC[32];sprintf(acMAC, "%02X-%02X-%02X-%02X-%02X-%02X",int (adapter.adapt.adapter_address[0]),int (adapter.adapt.adapter_address[1]),int (adapter.adapt.adapter_address[2]),int (adapter.adapt.adapter_address[3]),int (adapter.adapt.adapter_address[4]),int (adapter.adapt.adapter_address[5]));macOUT = acMAC;return true;}}bool GetMacByNetBIOS(std::string& macOUT){// 取得网卡列表LANA_ENUM adapterList;NCB Ncb;memset(&Ncb, 0, sizeof(NCB));Ncb.ncb_command = NCBENUM;Ncb.ncb_buffer = (unsigned char *)&adapterList;Ncb.ncb_length = sizeof(adapterList);Netbios(&Ncb);// 取得MACfor (int i = 0; i < adapterList.length; ++i){if (GetAdapterInfo(na[i], macOUT))return true;}return false;}参考:取得系统中网卡MAC地址的三种方法方法二:通过对控制台ipconfig /all命令重定向#include <Windows.h>#include <boost\regex.hpp>namespace{#if 0/// @brief 采用字符串查找来提取MAC地址/// @remark 该方法有很大局限性,并不是所有OS返回的MAC地址前导字符串都是/// "Physical Address. . . . . . . . . : "bool ParseMac(const std::string& str, std::string& macOUT){static const std::string beginMarkOfMAC("Physical Address. . . . . . . . . : ");static const std::string endMarkOfMAC("\r\n");size_t begin = str.find(beginMarkOfMAC);if(begin != std::string::npos){begin += beginMarkOfMAC.size();size_t end = str.find(endMarkOfMAC, begin);if(end != std::string::npos){macOUT = str.substr(begin, end - begin - 1);return true;}}return false;}#else/// @brief 采用boost::regex来提取MACbool ParseMac(const std::string& str, std::string& macOUT){const static boost::regex expression("([0-9a-fA-F]{2})-([0-9a-fA-F]{2})-([0-9a-fA-F]{2})-([0-9a-fA-F]{2})-([0-9a-fA-F]{2})-([0-9a-f A-F]{2})",boost::regex::perl | boost::regex::icase);boost::cmatch what;if(boost::regex_search(str.c_str(), what, expression)){macOUT = what[1] + "-" + what[2] + "-" + what[3] + "-" + what[4] + "-" + what[5] + "-" +what[6];return true;}return false;}#endif}bool GetMacByCmd(std::string& macOUT){bool ret = false;//初始化返回MAC地址缓冲区SECURITY_ATTRIBUTES sa;sa.nLength = sizeof(SECURITY_ATTRIBUTES);sa.lpSecurityDescriptor = NULL;sa.bInheritHandle = TRUE;//创建管道HANDLE hReadPipe,hWritePipe;if(CreatePipe(&hReadPipe, &hWritePipe, &sa, 0) == TRUE){//控制命令行窗口信息STARTUPINFO si;//返回进程信息PROCESS_INFORMATION pi;si.cb = sizeof(STARTUPINFO);GetStartupInfo(&si);si.hStdError = hWritePipe;si.hStdOutput = hWritePipe;si.wShowWindow = SW_HIDE; //隐藏命令行窗口si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;//创建获取命令行进程if (CreateProcess(NULL, "ipconfig /all", NULL, NULL, TRUE, 0, NULL, NULL, &si, &pi) == TRUE){WaitForSingleObject(pi.hProcess, 3000); // 设置超时时间,防止Vista、Win7等操作系统卡死unsigned long count;CloseHandle(hWritePipe);std::string strBuffer(1024 * 10, '\0'); // 准备足够大的缓冲区if(ReadFile(hReadPipe, const_cast<char*>(strBuffer.data()), strBuffer.size() - 1, &count, 0) == TRUE){strBuffer.resize(strBuffer.find_first_of('\0')); // 截掉缓冲区后面多余的'\0'ret = ParseMac(strBuffer, macOUT);//提取MAC地址串}CloseHandle(pi.hThread);CloseHandle(pi.hProcess);}CloseHandle(hWritePipe); // VS2010下调试,此处会有“An invalid handle was specified”的中断,直接运行正常,原因未知。
获得MAC地址的四个方法1.使用WMI。
查询表Win32_NetworkAdapterConfiguration即可获得。
2.使用ARP协议。
请看这里。
3.使用Windows命令nbtstat,也就是通过NetBIOS。
请看这里。
4.查询SNMP(就是一种用于监视网络设备的协议)的MIB(管理信息数据库)。
但这不是一件简单的事情,需要自己创建SNMP包,发送到交换机,然后对返回的响应进行解析。
下面是代碼:using System;using System.Diagnostics;using System.Management;using ;using System.Runtime.InteropServices;using System.Text.RegularExpressions;namespace MACAddress{///<summary>/// MainClass 的摘要描述。
///</summary>internal class MainClass{///<summary>///應用程式的主進入點。
///</summary>[STAThread]private static void Main(string[] args){GetMACByWMI();IPAddress[] ips = GetLocalIP();foreach (IPAddress ip in ips){Console.WriteLine(GetMacByARP(ip.ToString()));string mac = GetRemoteMacByNetBIOS(ip.ToString());if ( mac.Length != 0 )Console.WriteLine(mac);elseConsole.WriteLine("Fail to get MACAddress by NetBIOS");GetMACBySNMP(ip.ToString(),"yourGroupName@yourVlanNumber");}Console.ReadLine();}By WMI#region By ARP[DllImport("Iphlpapi.dll")]private static extern int SendARP(Int32 dest, Int32 host, ref Int64 mac, re f Int32 length);[DllImport("Ws2_32.dll")]private static extern Int32 inet_addr(string ip);public static string GetMacByARP(string clientIP){string ip = clientIP;Int32 ldest = inet_addr(ip);Int64 macinfo = new Int64();Int32 len = 6;try{SendARP(ldest, 0, ref macinfo, ref len);}catch{return "";}string originalMACAddress = Convert.ToString(macinfo, 16);if (originalMACAddress.Length < 12){originalMACAddress = originalMACAddress.PadLeft(12, '0');}string macAddress;if (originalMACAddress != "0000" && originalMACAddress.Length == 12){string mac1, mac2, mac3, mac4, mac5, mac6;mac1 = originalMACAddress.Substring(10, 2);mac2 = originalMACAddress.Substring(8, 2);mac3 = originalMACAddress.Substring(6, 2);mac4 = originalMACAddress.Substring(4, 2);mac5 = originalMACAddress.Substring(2, 2);mac6 = originalMACAddress.Substring(0, 2);macAddress = mac1 + "-" + mac2 + "-" + mac3 + "-" + mac4 + "-" + mac5 + "-" + mac6;}else{macAddress = "";}return macAddress.ToUpper();}public static IPAddress[] GetLocalIP(){string hostName = Dns.GetHostName();IPHostEntry ipEntry = Dns.GetHostByName(hostName);return ipEntry.AddressList;}#endregion#region By NetBIOSpublic static string GetRemoteMacByNetBIOS(string clientIP){string ip = clientIP;string dirResults = "";ProcessStartInfo psi = new ProcessStartInfo();Process proc = new Process();psi.FileName = "nbtstat.exe";//psi.RedirectStandardInput = false;psi.RedirectStandardOutput = true;psi.RedirectStandardError = true;psi.Arguments = "-A " + ip;eShellExecute = false;proc = Process.Start(psi);dirResults = proc.StandardOutput.ReadToEnd();string error = proc.StandardError.ReadToEnd();proc.WaitForExit();dirResults = dirResults.Replace("\r", "").Replace("\n", "").Replace("\t ", "");Regex reg = new Regex("Mac[ ]{0,}Address[ ]{0,}=[ ]{0,}(?((.)*?))__ MAC", RegexOptions.IgnoreCase | piled);Match mc = reg.Match(dirResults + "__MAC");if (mc.Success){return mc.Groups["key"].Value.ToUpper();}else{return "";}}#endregion#region By SNMPpublic static void GetMACBySNMP(string ip,string vlan){int commLength,mibLength,dataStart,dataLength;string nextMib,value;SNMP conn = new SNMP();string mib = "1.3.6.1.2.1.17.4.3.1.1";int orgMibLength = mib.Length;byte[] response = new byte[1024];nextMib = mib;while ( true){response = conn.Get("getnext",ip,vlan,nextMib);commLength = Convert.ToInt16(response[6]);mibLength = Convert.ToInt16(response[23+commLength]);dataLength = Convert.ToInt16(response[25+commLength+mibLengt h]);dataStart = 26 + commLength + mibLength;value = BitConverter.ToString(response,dataStart,dataLength);nextMib = conn.GetNextMIB(response);if ( !(nextMib.Substring(0,orgMibLength) == mib)){break;}Console.WriteLine("{0}={1}",nextMib,value);}}#endregion}}SNMP Classusing System;using ;using .Sockets;using System.Text;namespace MACAddress{/**////<summary>/// SNMP 的摘要描述。
如何查网卡的MAC地址要查找网卡的MAC地址,可以按照以下几个步骤进行操作:1.使用命令行查找MAC地址:- 打开命令提示符或终端窗口,可以通过在Windows上按下Win + R 键,然后输入"cmd"并按下Enter键,在Mac上可以在应用程序文件夹的实用工具文件夹中找到终端。
- 在命令提示符或终端中,输入"ipconfig /all"(Windows)或"ifconfig -a"(Mac/Linux)并按下Enter键。
- 在结果中找到你的网卡名称(可能是以太网适配器或Wi-Fi适配器)以及其对应的物理地址(即MAC地址)。
MAC地址通常以类似于"XX-XX-XX-XX-XX-XX"的形式显示在"Physical Address"或"HWaddr"一栏中。
2. 在Windows上使用图形界面查找MAC地址:- 在Windows任务栏上的栏中键入"查看网络连接",然后选择"查看网络连接"选项。
-在"网络连接"窗口中,找到并右键单击你想查找MAC地址的网卡(以太网适配器或Wi-Fi适配器),然后选择"状态"选项。
-在"状态"窗口中,单击"详细信息"按钮。
-在"详细信息"窗口中,找到"物理地址"或"MAC地址"一栏,其中显示了你的网卡的MAC地址。
3. 在Mac上使用图形界面查找MAC地址:-点击屏幕上的苹果图标,然后选择"系统偏好设置"。
-在"系统偏好设置"窗口中,选择"网络"选项。
-在"网络"窗口中,选择你要查找MAC地址的网络连接(以太网或Wi-Fi)。