# How does Mathematica know my location?

On the AstronomicalData page in the online reference, it says for

AstronomicalData["Sun", "NextRiseTime"]


that it finds the next rise time for the Sun from your current location and time. Where does Mathematica keep that? I don't remember giving that during installation and I can't find it in the Preferences either.

edit
Particularly the returned value

{2012, 9, 5, 7, 3, 52.704}


to 1 ms resolution suggests that the location is known to some precision. At the latitude where I live, 1 ms is 25 cm.

-
You've seen FindGeoLocation[] and \$GeoLocation? –  Ｊ. Ｍ. Sep 5 '12 at 11:22
@J.M. - I have now :-), thanks. But it doesn't answer my question: FindGeoLocation may use built-in GPS or other capabilities. My PC doesn't have a GPS, and I don't know if an IP-address will tell much. –  stevenvh Sep 5 '12 at 11:30
See for example ip2location.com/databases/… –  belisarius Sep 5 '12 at 11:34
Regarding precision: a question posted yesterday show that the world land area is reported with an error the size of New Zealand, so don't bet in that ms accuracy ... –  belisarius Sep 5 '12 at 11:48
You can type "where am I" into Wolfram|Alpha to see the sources of information that Wolfram might use for geo-location. Unfortunately, my IP address is the location of my ISP's computers, more than 300 miles to the east, yet WolframAlpha has specified a Longitude of 7 degrees West, firmly in the Atlantic Ocean. Glug. –  cormullion Sep 7 '12 at 8:49
show 5 more comments

As comments have stated, in most cases FindGeoLocation (and in turn other functions based on your geographical localization) use a so-called GeoIP service (similar to, e.g., this one) to determine to some extent your localization. This can be confirmed by using Trace on FindGeoLocation, which shows that Mathematica calls home to a Wolfram server for this purpose:

http://dataserver.wolfram.com/GeoIPLookup/GeoIPLookupServlet?l=Lxxxx-xxxx&m=yyyy-yyyyy-yyyyy&s=MacOSX-x86-64&lang=English


where Lxxxx-xxxx is your licence number and yyyy-yyyyy-yyyyy is your machine ID.

This can also be confirmed, in my case, by switching off the WiFi access: FindGeoLocation[] then returns Missing["NotAvailable"], as documented.

-
The only purpose of including your license number and machine ID is to check whether you are a legit user, right? Geo=location would not require this information. –  David Carraher Sep 5 '12 at 13:54
@DavidCarraher I doubt it... it's probably more to track your usage and for an internal account of what functions are requesting the geolocation service. If you read the license agreement, they also say that any Mathematica web search you perform via the documentation center (I mean the "x matches on Wolfram sites" you get when there isn't an immediate hit within the docs) is fair game for their data mining and the query is sent along with your license number and machine ID. That's how they found out acl likes pink underwear. –  rm -rf Sep 5 '12 at 14:05
@R.M well, if StackExchange performed the same data mining, they could personalize the top user swag, and acl would then receive heptagon-branded pink underwear… –  F'x Sep 5 '12 at 14:11