我在超级用户的另一篇文章中找到了一条对我有帮助的命令,但我不知道如何将输出传递给变量并打印它。
这是我使用过的命令:
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