#!/bin/bash
NEWMAC=`openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//'`
ifconfig $1 ether $NEWMAC
ifconfig $1 down
ifconfig $1 up
I pass en0 or en1 as the sole argument to the script and run as sudo. When I do this, the MAC does change, however I cannot restore connectivity until I reboot and the new MAC is lost. Initially the interface displays no IP, but after a few minutes it displays an IP and claims to have DHCP information. However, I believe this is a cached data and not an actual renewal, as I cannot ping, load pages, or otherwise connect to the Internet.
I have appended this snippet with no improvement in results.
ipconfig set $1 BOOTP
ipconfig set $1 DHCP