Non esiste una funzione di lista nera (che conosco) ma ci sono un paio di semplici soluzioni alternative
Limitare solo agli amministratori
La tua prima opzione sarebbe quella di configurare la rete e limitarla in modo che solo gli amministratori possano unirsi alle reti (Impostazioni di rete >> Scheda WiFi >> Avanzate)
L'avvertenza qui è che l'utente non può più essere un amministratore.
Rimuovere progmaticamente la rete
La seconda opzione è di eseguire periodicamente un comando terminale:
networksetup -removepreferredwirelessnetwork en1 SSID
Se il SSID non esiste, si limiterà a fuoriuscire senza problemi. Se esiste, lo rimuoverà dalla rete preferita (salvata).
Potresti dire che questo è un semplice script bash
#!/bin/bash
SSID=MyBannedSSID
net=$(networksetup -listpreferredwirelessnetworks en1 | grep ${SSID} | cut -f2)
ap=$(networksetup -getairportnetwork en1 | cut -d ":" -f 2 | cut -c 2-)
# Remove Network if exists in saved networks
if [ "$net" = "$SSID" ]
then networksetup -removepreferredwirelessnetwork en1 ${SSID}
sleep 5
else echo "No Network"
fi
#Power cycle wireless adapter if connected to banned network
if [ "$ap" = "$SSID" ]
then networksetup -setairportpower en1 off
networksetup -setairportpower en1 on
fi
quindi usa cron o launchd (preferito) per eseguirlo periodicamente. L'avvertenza è che mentre possono unirsi alla rete, alla fine (secondo il tuo programma) lo elimineranno.
Devi eseguirlo come root (che significa inserire /Library/LaunchDaemons
se usi launchd
) altrimenti ti chiederà una password ogni volta.
Cosa sta facendo la sceneggiatura
- Verifica se il SSID vietato è stato salvato
- Rimuove la rete salvata se esiste
- Spegnere e riaccendere la carta dell'aeroporto se è collegata all'SSID vietato