2 votos

Networksetup -getairportnetwork devuelve No estás asociado con una red de AirPort

Estoy tratando de recuperar el nombre de mi red Wi-Fi a través de la terminal, pero me encuentro con algunos problemas.

He intentado con el comando:

/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -s

Sin embargo, devuelve la siguiente advertencia:

ADVERTENCIA: La herramienta de línea de comandos de airport está obsoleta y será eliminada en una futura versión.
Para diagnosticar problemas relacionados con Wi-Fi, utiliza la aplicación Diagnóstico Inalámbrico o la herramienta de línea de comandos wdutil.

También he intentado con:

networksetup -getairportnetwork en0

Pero devuelve:

No estás asociado con una red de AirPort.

A pesar de que estoy conectado a Wi-Fi. He intentado desconectar y reconectar, así como eliminar los siguientes archivos .plist en /Library/Preferences/SystemConfiguration/:

com.apple.airport.preferences.plist
com.apple.network.identification.plist
com.apple.wifi.message-tracer.plist
NetworkInterfaces.plist
preferences.plist

A pesar de estos esfuerzos, aún no he resuelto el problema.

NO quiero usar wdutil ya que requiere la contraseña de sudo. ¿Hay alguna forma de solucionar el problema con networksetup, o existe algún método alternativo para recuperar el nombre de Wi-Fi?

Especificaciones: macOS Sequoia 15.0 Apple Silicon M3 Pro

ACTUALIZACIÓN: Hoy restablecí mi mac a la configuración de fábrica y el sistema instaló Sonoma como el sistema operativo predeterminado. He probado el comando de terminal networksetup y funciona bien. Después de volver a actualizar a Sequoia, el problema vuelve a aparecer, así que creo que el problema está directamente relacionado con esta nueva actualización. Desafortunadamente, no puedo encontrar ninguna información sobre obsolescencia o advertencias en el manual.

4voto

eklingen Puntos 11

En primer lugar, la solución, aunque puede ser un poco lenta, al menos proporcionará un resultado:

system_profiler SPAirPortDataType | awk '/Current Network/ {getline;$1=$1;print $0 | "tr -d ':'";exit}'

consulte esto: https://discussions.apple.com/thread/255761216?sortBy=rank

Intenté los siguientes dos enfoques, pero ninguno funcionó:

Usar AppleScript para llamar a la API CoreWLAN para recuperar la información de Wi-Fi:

use AppleScript version "2.4" -- Yosemite (10.10) or later
use framework "Foundation"
use framework "CoreWLAN"
use scripting additions

set wifiInterface to current application's CWInterface's interfaceWithName:"en0"

-- Imprimir el objeto completo
log wifiInterface
  1. Usando directamente Swift:

    swift -e 'import CoreWLAN; if let wifi = CWWiFiClient.shared().interface()?.ssid() { print(wifi) } else { print("No conectado a ninguna red Wi-Fi") }'

-1voto

dan-snelson Puntos 21

En caso de que lo siguiente resulte útil:

Mi artículo Determining a Mac’s SSID (like an animal) describe los siguientes métodos para obtener el Identificador de Conjunto de Servicio (SSID) actualmente asignado a la Mac, comúnmente conocido como el nombre de la red Wi-Fi seleccionada por el usuario:

Versión de macOS

Comandos

macOS 15.0 Sequoia

system_profiler SPAirPortDataType | awk '/Current Network Information:/ { getline; print substr($0, 13, (length($0) - 13)); exit }'

/usr/libexec/PlistBuddy -c 'Print :0:_items:0:spairport_airport_interfaces:0:spairport_current_network_information:_name' /dev/stdin <<< "$(system_profiler SPAirPortDataType -xml)" 2> /dev/null

macOS 14.5 Sonoma a través de 14.7 Sonoma

/usr/sbin/networksetup -getairportnetwork en0 | /usr/bin/awk -F ": " '{ print $2 }'

macOS 14.4 Sonoma y 14.4.1 Sonoma

/usr/bin/wdutil info | /usr/bin/awk '/SSID/ { print $NF }' | head -n 1

macOS 13.6.9 Ventura a través de 14.3.1 Sonoma

/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport --getinfo | /usr/bin/awk '/ SSID/{print $NF}'

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X