Geekery: Where am I?

| | Comments (0)

I have an AppleScript that fires occasionally and automatically updates my iChat status to indicate if I’m at home, at work, or wherever. You know, so I don’t have to waste my time on it.

It works by detecting the Wi-Fi base station I’m connected to. But of course, every time Apple updates its OS, it breaks the methods I use.

Under Leopard I use this approach:

system_profiler SPAirPortDataType|grep -e “Current Wireless Network:”|awk ‘{print $4}’

That Terminal command gets wrapped in a “do shell script” command for AppleScript purposes.

But here’s the thing. In a future OS update, Apple has changed the output of the system_profiler SPAirPortDataType command. Now what it spits out is:


      Software Versions:
          Menu Extra: 6.0 (600.22)
          configd plug-in: 6.0 (600.27)
          System Profiler: 6.0 (600.9)
          Network Preference: 6.0 (600.22)
          AirPort Utility: 5.4.2 (542.23)
          IO80211 Family: 3.0 (300.20)
          Card Type: AirPort Extreme  (0x14E4, 0x8B)
          Firmware Version: Broadcom BCM43xx 1.0 (
          Locale: FCC
          Country Code: US
          Supported PHY Modes: 802.11 a/b/g/n
          Supported Channels: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 149, 153, 157, 161, 165
          Wake On Wireless: Supported
          Status: Connected
          Current Network Information:
            Extreme Meadow:
              PHY Mode: 802.11n
              BSSID: 0:1c:b3:ae:42:c3
              Channel: 11
              Network Type: Infrastructure
              Security: WPA2 Personal
              Signal / Noise: -58 dBm / -92 dBm
              Transmit Rate: 130
              MCS Index: 15

So, grep/sed/awk terminal wizards, any suggestions on how to update my command-line command to parse that I’m connected to “Extreme Meadow”? And fail gracefully if I’m not connected to any SSID, at which point the entire “Current Network Information” block disappears.


Lots of smart people helped. This seems to work.

do shell script "/System/Library/PrivateFrameworks
Resources/airport -I|
egrep '^[ ]+SSID:'|cut -f2 -d:"

About this Entry

This page contains a single entry by Jason Snell published on July 29, 2009 2:22 PM.

Quick short-URL AppleScript was the previous entry in this blog.

NaStrawManMo is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.