Mac OS X: 变更网卡MAC地址 和Linux系统差不多,注意最好获得原来的MAC地址并保存。下面的这个脚本适合于设置无线网卡. 对于Ethernet网卡的设置比这个简单多了。 #!/bin/bash # -------------------------------------------------------------------- # A simple script to set network interface MAC address # # Name: setAirportMAC # # Operating System: # Tested on 10.4 and 10.5 # # 2009 Tony Liu # Copyright GNU GPL # Version 0.0.1 # # Version History # 0.0.1: 2009-12-09 Initial # -------------------------------------------------------------------- # # Usage: see below, or run it in terminal. # num_argumnets=$# App_Name="$1" OSXVer=`sw_vers | grep 'ProductVersion:' | awk '{print $2}' | grep -o '/.[0-9]*/.'` EN_Name=`system_profiler -xml SPNetworkDataType | grep -A1000 "<string>AirPort</string>" | grep -m 1 -A1 "<key>interface</key>" | grep "<string>" | sed 's/>/ /g' | sed 's/</ /g' | awk '{print $2}'` HWMAC=`system_profiler -xml SPNetworkDataType | grep -B1000 ${EN_Name} | grep -A1 "<key>MAC Address</key>" | tail -1 | grep "<string>" | sed 's/>/ /g' | sed 's/</ /g' | awk '{print $2}'` AIRPORTMAC=`ifconfig $EN_Name | grep ether| awk '{print $2}'` echo $EN_Name, $HWMAC, $AIRPORTMAC; if [ "$EN_Name" = "" ] ; then echo "WARNING!: no Airport card found." exit 3 fi if [ "$num_argumnets" -lt "1" ] ; then echo "WARNING! : No argument provided." echo " Usage : setAirportMAC NewMACAddress" echo "Info : Current MAC Address is $AIRPORTMAC" exit 2 fi NewMACAddress="$2" echo "$NewMACAddress" AIRPORT="/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport" sudo $AIRPORT -z sudo ifconfig $EN_Name up if [ "$OSXVer" = ".5." ]; then sudo networksetup -setairportpower on fi sudo ifconfig $EN_Name lladdr $NewMACAddress sudo ifconfig $EN_Name down sleep 2 sudo ifconfig $EN_Name up sudo ifconfig $EN_Name up if [ "$OSXVer" = ".5." ]; then sudo networksetup -setairportpower on fi sleep 4 sudo $AIRPORT -s > /dev/null echo "setAirPortMAC success..." echo "MAC Address was: $AIRPORTMAC" echo "MAC Address is : $NewMACAddress" exit 0