在Windows和Linux系统上获取网卡MAC地址及相关信息所有常用方法整理

在Windows和Linux系统上获取网卡MAC地址及相关信息所有常用方法整理

摘要

在网络管理和故障排除中,了解如何获取网卡的MAC地址、IP地址以及网卡名称是系统管理员必备的技能。本文将介绍在Windows和Linux系统上手动获取网卡MAC地址的方法,并提供脚本以自动化获取服务器中网卡信息的过程。这些技巧和工具将帮助新手系统管理员更高效地管理网络资源。

手动获取网卡MAC地址

Windows系统

使用ipconfig命令

打开命令提示符(CMD)输入命令:ipconfig /all查找"物理地址"字段,即为MAC地址

通过网络连接查看

打开"网络连接"右键点击需要查看的网络适配器,选择"状态"点击"详细信息",在"物理地址"字段可以看到MAC地址

使用PowerShell

打开PowerShell输入命令:Get-NetAdapter | Select-Object Name, MacAddress

Linux系统

使用ifconfig命令

打开终端输入命令:ifconfig查找"ether"或"HWaddr"字段,即为MAC地址

使用ip命令

在终端中输入:ip link show或ip addr查找"link/ether"后面的字段,即为MAC地址

使用nmcli命令

在终端中输入:nmcli device show <网卡名称>查找"GENERAL.HWADDR"字段,即为MAC地址

查看系统文件

使用命令:cat /sys/class/net/<网卡名称>/address直接显示网卡的MAC地址

使用ethtool命令

安装ethtool工具(如果未安装)输入命令:ethtool -P <网卡名称>显示网卡的永久MAC地址

使用dmesg命令

输入命令:dmesg | grep <网卡名称>在输出中查找MAC地址信息

注意:在Linux系统中,请将<网卡名称>替换为实际的网卡名称,如eth0、ens160等。使用ifconfig或ip link命令可以查看可用的网卡名称。

自动化脚本获取网卡信息

Windows PowerShell脚本

powershellGet-NetAdapter | Where-Object { $_.PhysicalMediaType -ne 'Unspecified' } | ForEach-Object {

$name = $_.Name

$mac = $_.MacAddress

$ip = (Get-NetIPAddress -InterfaceAlias $name | Where-Object { $_.AddressFamily -eq 'IPv4' }).IPAddress

[PSCustomObject]@{

Name = $name

MacAddress = $mac

IPAddress = $ip

}

} | Format-Table -AutoSize

这个PowerShell脚本会执行以下操作:

获取所有网络适配器过滤掉非物理网卡(如虚拟网卡)对每个物理网卡获取名称、MAC地址和IPv4地址以表格形式输出结果

调用结果输出示例:

PS C:\> Get-NetAdapter | Where-Object { $_.PhysicalMediaType -ne 'Unspecified' } | ForEach-Object {

>> $name = $_.Name

>> $mac = $_.MacAddress

>> $ip = (Get-NetIPAddress -InterfaceAlias $name | Where-Object { $_.AddressFamily -eq 'IPv4' }).IPAddress

>> [PSCustomObject]@{

>> Name = $name

>> MacAddress = $mac

>> IPAddress = $ip

>> }

>> } | Format-Table -AutoSize

Name MacAddress IPAddress

---- ---------- ---------

以太网 9C-2D-CD-70-26-E2 {192.168.1.2, 169.254.3.19}

蓝牙网络连接 78-AF-08-2F-FD-D3 169.254.54.79

WLAN 78-AF-08-2F-FD-CF 10.0.45.119

Linux Shell脚本

bash#!/bin/bash

for iface in $(ls -d /sys/class/net/*/device 2>/dev/null | cut -d'/' -f5); do

mac=$(cat /sys/class/net/$iface/address)

ip=$(ip -4 addr show $iface | grep -oP '(?<=inet\s)\d+(\.\d+){3}')

echo "Interface: $iface"

echo "MAC Address: $mac"

echo "IP Address: $ip"

echo "---------------------------"

done

这个Linux shell脚本会执行以下操作:

遍历所有物理网卡(通过检查/sys/class/net/*/device目录)对每个物理网卡获取名称、MAC地址和IPv4地址打印每个网卡的信息

脚本内容执行输出示例:

root@zhlh-pc:~/zabbix-docker# for iface in $(ls -d /sys/class/net/*/device 2>/dev/null | cut -d'/' -f5); do

> mac=$(cat /sys/class/net/$iface/address)

> ip=$(ip -4 addr show $iface | grep -oP '(?<=inet\s)\d+(\.\d+){3}')

> echo "Interface: $iface"

> echo "MAC Address: $mac"

> echo "IP Address: $ip"

> echo "---------------------------"

> done

Interface: ens33

MAC Address: 00:50:56:9f:d0:54

IP Address: 10.10.62.157

---------------------------

使用这些脚本,您可以轻松获取物理网卡的名称、IP地址和MAC地址信息。在Windows系统中,直接在PowerShell中运行该脚本即可。在Linux系统中,将脚本保存为文件(例如network_info.sh),赋予执行权限(chmod +x network_info.sh),然后运行(./network_info.sh)即可。

总结

通过本文介绍的方法和脚本,系统管理员可以快速获取服务器中网卡的详细信息。这些技巧不仅适用于日常管理,还能在网络故障排除时提供有力支持。希望这些工具能帮助新手管理员提高工作效率,简化操作流程。

相关推荐

毕仰高:我并不相信所谓的
s365app下载

毕仰高:我并不相信所谓的"中国模式"

📅 08-23 👀 8128
龙文教育创始人遭索赔2.4亿元,疯狂补习班难再疯狂?
WiiU折腾指南第一期—破解、固化
365app下载365足球网站

WiiU折腾指南第一期—破解、固化

📅 07-04 👀 9137