#!/bin/sh # Loop through each hardware port and device pair networksetup -listallhardwareports | awk ' /^Hardware Port:/ {interface_name=$3; for(i=4;i<=NF;i++){interface_name=interface_name" "$i}} /^Device:/ {print interface_name, $2}' | \ while read interface_name interface; do # Get the IP address for the current interface ip=$(ipconfig getifaddr "$interface" 2>/dev/null) if [ -n "$ip" ]; then echo "restarting interface $interface ($interface_name)" # Disable and enable network service by hardware port name networksetup -setnetworkserviceenabled "$interface_name" off networksetup -setnetworkserviceenabled "$interface_name" on fi done