2010-12-19 6 views

Respuesta

83

El comando

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

le dará detalles sobre la conexión de red inalámbrica actual.

Para obtener específicamente el SSID, utilice este comando:

/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I | awk '/ SSID/ {print substr($0, index($0, $2))}' 
+0

Cuando hago el segundo comando, no funciona correctamente. El SSID al que estoy conectado tiene espacios en él y ese comando solo muestra la primera palabra. –

+1

@Mark: actualicé el segundo comando para trabajar con los SSID con espacios en ellos también. ¡Espero que esto ayude! – Chetan

+1

Dile a 'awk' que use ':' como delimitador y obtendrás todo tu SSID: 'awk -F': ''/SSID/{print $ 2} '' – Johnsyweb

4

El siguiente ha sido probado en OS X e imprime el SSID sin ningún ancho de las columnas no modificables:

system_profiler SPAirPortDataType | awk -F':' '/Current Network Information:/ { 
    getline 
    sub(/^ */, "") 
    sub(/:$/, "") 
    print 
}' 

En esencia, esto toma la salida de system_profiler SPAirPortDataType, e imprime la línea después de "Current Network Information:" recortar los espacios en blanco iniciales y los puntos finales (ya que los SSID pueden contener : s).

+2

'system_profiler' tiene un pequeño retraso en mi OS X 10.8. 'networksetup' necesita el nombre de la interfaz del aeropuerto. Prefiero 'aeropuerto | sed -n 's/^ * SSID: // p'' – zhangyoufu

+0

Gracias. En macOS Sierra es 'aeropuerto --getinfo | sed -n 's/^ * SSID: // p'' –

30

Donde no es hay una rueda en la necesidad de reinventar?

networksetup -getairportnetwork en1 | cut -c 25- 

es lo que tendría que utilizar en 10,6, 10,7 cambió el nombre de "hardware de puerto" de "aeropuerto" a "Wi-Fi", y por lo tanto había cortado uno menos letra,

aru$ networksetup -getairportnetwork en1 | cut -c 24- 
Yorimichi 
+5

Nota El comentario de Johnsyweb arriba re: awk; en lugar de usar 'cortar', podría ejecutar 'networksetup -getairportnetwork en1 | awk -F ":" '{print $ 2}' ', que funcionará independientemente de si la etiqueta contiene" Aeropuerto "o" Wi-Fi ". – larsks

+2

Lo malo aquí es que debes conocer el nombre de tu interfaz wlan. He visto e1 en Mac que tienen un ethernet incorporado (asignado e0) que hace que la interfaz WiFi sea 'e1', lo que parece ser el caso en esta respuesta. Otros tienen 'e0'. Esta es una edición fácil, por supuesto, pero si intenta hacerla genérica, la respuesta de @Chetan parece más fácil – nhed

+0

O bien, use: networksetup -getairportnetwork en1 | cut -d ':' -f2 | corte -c 2- – RichS

Cuestiones relacionadas