How does my iMac know my location in the maps app, given that I use a VPN that has my IP about 200 miles from where my address is?

I have an iMac (Mid 2011, if it matters) and I just installed Mavericks.

When I launch the Maps app, it knows PRECISELY where I am, which I could certainly understand if it was using IP geolocation. The catch is, I'm on a VPN connection, with the exit about 200 miles from my actual location.

If I use any of the IP geolocation websites, it shows my location at that VPN exit node, not where I actually am.

So, how DOES my computer know where it is?


Solution 1:

Technically - the process is called trilateration and operates by cross checking all BSSID - the unique identifier / MAC address for each wireless base station that your Mac can detect while it listens periodically or is actively searching to join a WiFi channel.

  • How does Maps on Mac OS determine the computer's location

You can run this scan manually by running the Wireless Diagnostic app which is located in /system/Library/CoreServices/Applications on Mavericks.

Wireless Diagnostic

As long as your hardware is within range of one hot spot that has been geolocated in Apple's database of hotspots, the location should be within one football field of the location of the hotspot.

With three or more measurements - and relative signal strength of the various hot spot radio signals - the program might be able to make a more accurate estimate of your location.

You can also run this scan from the command line using the airport binary that is squirreled away in

mac:bin mike$ airport --scan
                            SSID BSSID             RSSI CHANNEL HT CC SECURITY (auth/unicast/group)
                     na ala hele 00:26:36:9c:32:23 -59  2       Y  US WPA(PSK/TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP) 
                     na ala hele 00:26:bb:79:23:1f -59  2       Y  US WPA(PSK/TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP) 
                fast na ala hele 00:26:bb:79:23:20 -74  149,+1  Y  US WPA(PSK/TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP) 
mac:bin mike$ airport --getinfo
     agrCtlRSSI: -75
     agrExtRSSI: 0
    agrCtlNoise: -86
    agrExtNoise: 0
          state: running
        op mode: station 
     lastTxRate: 81
        maxRate: 300
lastAssocStatus: 0
    802.11 auth: open
      link auth: wpa2-psk
          BSSID: 00:26:bb:79:23:20
           SSID: fast na ala hele
            MCS: 4
        channel: 149,1
mac:bin mike$ ls -l /usr/local/bin/airport 
lrwxr-xr-x  1 root  wheel  89 Sep 13 11:40 /usr/local/bin/airport -> /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport

Solution 2:

If you have Wifi turned on this happen because at least one of your close networks is stored in Apple's geolocation database.