如何获取当前 MAC 地址并将其传递给 Linux 终端中的变量

如何获取当前 MAC 地址并将其传递给 Linux 终端中的变量

我在超级用户的另一篇文章中找到了一条对我有帮助的命令,但我不知道如何将输出传递给变量并打印它。

这是我使用过的命令:

ip addr show $(awk 'NR==3{print $1}' /proc/net/wireless | tr -d :) | awk '/ether/{print $2}'

我的完整脚本是:

#!/bin/bash

# Diconnect the network
nmcli d disconnect wlan0

# Down interface
ifconfig wlan0 down

# Randomize my mac address
macchanger -r wlan0

# Up interface
ifconfig wlan0 up

# Connect network again
nmcli d connect wlan0

# Get current mac generated by 'macchanger'
ip addr show $(awk 'NR==3{print $1}' /proc/net/wireless | tr -d :) | awk '/ether/{print $2}'

# Open the web page using current mac generated
xdg-open "http://webapplication.com/?mac=MY_MAC_ADDRES"

答案1

这应该会找到 的 MAC 地址eth0。您可能需要更改该接口 ( eth0) 以满足您的设置需求,但它应该可以工作。

DETECTED_MAC_ADDRESS=`ifconfig eth0 2>/dev/null|awk '/HWaddr/ {print $5}'`

答案2

您可以通过文件系统找到所有网络设备的 mac 地址/sys/devices

这将查找 pci 总线上网络设备的所有 mac 地址。MAC 地址存储在文件中address

sudo find /sys/devices -wholename */pci*/net/*/address -exec cat {} +

输出:

00:XX:XX:XX:XX:83
00:XX:XX:XX:XX:82

相关内容