融雪闵 发表于 2016-5-15 10:08:01

Mac OS X: 变更网卡MAC地址

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 '/.*/.'`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" = "" ] ; thenecho "WARNING!: no Airport card found."exit 3fiif [ "$num_argumnets" -lt "1" ] ; thenecho "WARNING! : No argument provided."echo "         Usage : setAirportMAC NewMACAddress"echo "Info :   Current MAC Address is $AIRPORTMAC"exit 2fiNewMACAddress="$2"echo "$NewMACAddress"AIRPORT="/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport"sudo $AIRPORT -z sudo ifconfig $EN_Name upif [ "$OSXVer" = ".5." ]; thensudo networksetup -setairportpower onfisudo ifconfig $EN_Name lladdr $NewMACAddresssudo ifconfig $EN_Name downsleep 2sudo ifconfig $EN_Name upsudo ifconfig $EN_Name upif [ "$OSXVer" = ".5." ]; thensudo networksetup -setairportpower onfisleep 4sudo $AIRPORT -s > /dev/nullecho "setAirPortMAC success..."echo "MAC Address was: $AIRPORTMAC"echo "MAC Address is : $NewMACAddress"exit 0
页: [1]
查看完整版本: Mac OS X: 变更网卡MAC地址