我不擅长编写脚本,但发现这个网站,所以希望有些人可以帮助我:)
我需要一个bash脚本来显示机器的机场Mac地址,我认为该命令是..
ifconfig en1
..在终端中显示正确的结果,但我不知道如何利用它。
我在办公环境中使用Casper Suite,需要获取显示无线(机场)端口MAC地址的报告。
向您展示Casper如何在这里工作的脚本是有人写的,以检查机器是否有机场卡
#!/bin/sh
checkHasAnAirportCard=`networksetup -listallhardwareports | grep "Hardware Port: Air" | cut -c 16-`
if [ -z "$checkHasAnAirportCard" ]; then
echo "<result>No</result>"
else
echo "<result>Yes</result>"
fi
感谢您的帮助&amp;建议
答案 0 :(得分:4)
你可以这样做:
#!/bin/sh
networksetup -listallhardwareports | egrep -A 2 "(AirPort|Wi-Fi)" | grep Ethernet
将其放入一个名为eg的文本文件中airport.sh
,将其设为可执行文件(chmod +x airport.sh
)并运行它:
$ ./airport.sh
Ethernet Address: 58:b0:35:65:7a:02
如果你只想要自己的MAC地址(没有“以太网地址:”前缀),那么将脚本更改为:
#!/bin/sh
networksetup -listallhardwareports | egrep -A 2 "(AirPort|Wi-Fi)" | grep Ethernet | cut -f 3- -d ' '
然后应该给出例如:
$ ./airport.sh
58:b0:35:65:7a:02
答案 1 :(得分:0)
这样的事可能对你有用(脚本的内容是ifconfig en1 | egrep -o "([0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2}"
):
#!/bin/sh
IFACE=en1 ##Put your interface here if it isn't en1
MACADDRESS=`ifconfig ${IFACE} | egrep -o "([0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2}"`
if [ -n "$MACADDRESS" ]; then
# Found a mac address, print it out
echo "$MACADDRESS"
else
# No mac found, do something else
fi
输出mac地址:
[ 16:15 Jonathan@MacBookPro ~ ]$ ./macMac.sh
62:c5:4a:8c:c2:74
如果-n
为空,则$MACADDRESS
测试
egrep -o
搜索特定的正则表达式,仅返回匹配项,而不是整行。