在设计酷瓜云课堂内网版授权的时候,想通过绑定网卡的形式授权,通过shell脚本自动获取默认网卡,再获取默认网卡的物理地址,尤其不存在eth0标识的情况下,简直太方便了。
debian, centos 测试都成功,自动判断默认网卡
cat /sys/class/net/$(ip route show default | awk 'NR==1' | awk '/default/ {print $5}')/address
将上述管道命令分解如下:
(1) ip route show default , 获取默认路由,输出如下:
default via 10.86.40.1 dev enp0s31f6 proto dhcp metric 100
default via 10.86.50.1 dev wlp4s0 proto dhcp metric 600
(2) awk ‘NR==1’ 输出第一行(如果有多块网卡的话),输出如下:
default via 10.86.40.1 dev enp0s31f6 proto dhcp metric 100
(3) awk ‘/default/ {print $5}’ 过滤出默认网卡名称,得到网卡名称:
enp0s31f6
(4) 获取网卡地址
cat /sys/class/net/enp0s31f6/address,输出如下:
c8:5b:76:e0:f8:5f
参考来源:https://stackoverflow.com/questions/23828413/get-mac-address-using-shell-script