linux使用命令查看MAC地址

本文详细介绍了MAC地址的概念,它是如何在网络中唯一标识一个网卡的,并提供了在CentOS7环境下查看MAC地址的方法,包括使用ip addr命令查看所有网卡的MAC地址,使用cat命令直接查看特定网卡的MAC地址,以及如何通过ping和arp命令获取已知IP地址的MAC地址。

MAC地址用于在网络中唯一标示一个网卡,一台设备若有一或多个网卡,则每个网卡都需要并会有一个唯一的MAC地址。

MAC地址则是48位的(6个字节),通常表示为12个16进制数,每2个16进制数之间用冒号隔开,如08:00:20:0A:8C:6D就是一个MAC地址。具体如下图所示,其前3字节表示OUI(Organizationally Unique Identifier),是IEEE的注册管理机构给不同厂家分配的代码,区分不同的厂家。后3字节由厂家自行分配。

在OSI模型中,第三层网络层负责IP地址,第二层数据链路层则负责MAC位址。

 

以下命令在centos7环境中试验:

1、查看本机的MAC地址,centos7以上,可以使用# ip addr(centos7以下使用# ifconfig

[root@cwaf ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:16:e9:85 brd ff:ff:ff:ff:ff:ff
    inet 172.18.32.62/24 brd 172.18.32.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe16:e985/64 scope link
       valid_lft forever preferred_lft forever

2、查看本机的某个网卡的mac地址,例如eth0,# cat /sys/class/net/eth0/address

[root@cwaf ~]# cat /sys/class/net/eth0/address
00:0c:29:16:e9:85

3、查看本机的某个网卡的mac地址,例如eth0

可通过# cat /etc/sysconfig/network-scripts/ifcfg-eth0查看HWADDR=,如果存在这个字段的话

4、查看已知IP地址的MAC地址:使用ping命令加arp命令

ping命令是为了保证arp缓存中一定存在该ip的arp信息

[root@cwaf ~]# ping 172.18.32.59
PING 172.18.32.59 (172.18.32.59) 56(84) bytes of data.
64 bytes from 172.18.32.59: icmp_seq=1 ttl=64 time=0.203 ms
64 bytes from 172.18.32.59: icmp_seq=2 ttl=64 time=0.179 ms
^C
--- 172.18.32.59 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.179/0.191/0.203/0.012 ms
[root@cwaf ~]#
[root@cwaf ~]# arp -n 172.18.32.59
Address                  HWtype  HWaddress           Flags Mask            Iface
172.18.32.59             ether   8c:ec:4b:c3:a3:32   C                     eth0

5、通过# cat /proc/net/arp查看arp表

[root@cwaf ~]# cat /proc/net/arp
IP address       HW type     Flags       HW address            Mask     Device
172.18.32.59     0x1         0x2         8c:ec:4b:c3:a3:32     *        eth0
172.18.32.76     0x1         0x2         00:0c:29:5a:30:b6     *        eth0

 

Linux系统中,可以通过多种方式查看网络接口的MAC地址。以下是几种常用的方法: ### 使用 `ip` 命令 `ip` 命令是一个强大的网络配置工具,可以用来显示和操作路由、网络设备、接口等。要查看特定网络接口的MAC地址,可以使用如下命令: ```bash ip addr show eth0 ``` 在这个命令的输出中,会找到类似 `link/ether 00:0c:29:16:e9:85` 的信息,这里的 `00:0c:29:16:e9:85` 就是 `eth0` 接口的MAC地址[^2]。 ### 使用 `ifconfig` 命令 尽管 `ifconfig` 在某些较新的Linux发行版中已被弃用,但它仍然广泛可用,并且对于查看网络接口的信息非常有用。要查看MAC地址,可以运行: ```bash ifconfig eth0 ``` 在输出的信息中,可以看到 `HWaddr` 或者 `ether` 字段,这表示了该接口的MAC地址[^3]。 ### 查看 `/sys/class/net/` 目录下的文件 Linux系统中的 `/sys/class/net/` 目录包含了所有网络接口的信息。可以直接读取特定接口的MAC地址文件来获取信息: ```bash cat /sys/class/net/eth0/address ``` 此命令将直接输出 `eth0` 接口的MAC地址,格式如 `00:0c:29:16:e9:85`[^1]。 ### 使用 `nmcli` 命令 对于使用NetworkManager管理网络连接的系统,可以使用 `nmcli` 命令查看网络接口的详细信息,包括MAC地址: ```bash nmcli device show eth0 | grep -i hwaddr ``` 这条命令会过滤出与 `eth0` 接口相关的MAC地址信息,输出类似于 `GENERAL.HWADDR: 52:54:00:C1:AD:47` 的结果[^3]。 ### 使用 `ip link` 命令结合 `awk` 如果希望以一种更简洁的方式获取MAC地址,可以使用 `ip link` 命令并结合 `awk` 来处理输出: ```bash ip link show enp49s0f0 | awk '/ether/ {print $2}' ``` 这个命令组合会显示 `enp49s0f0` 接口的MAC地址,例如 `d4:5d:64:ba:e6:1c`[^3]。 ### 使用 `grep` 和正则表达式从 `ifconfig` 输出中提取MAC地址 如果你想要从 `ifconfig` 的输出中仅提取MAC地址,可以使用 `grep` 和正则表达式来实现这一点: ```bash ifconfig eth0 | grep -o -E '([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}' ``` 该命令将输出 `eth0` 接口的MAC地址,例如 `52:54:00:c1:ad:47`[^3]。 以上方法提供了不同的途径来适应不同用户的偏好以及不同环境下的需求。选择最适合当前情况的方法即可轻松获取Linux系统中网络接口的MAC地址
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值