While trying to estimate a user's location in a notebook, I noticed that
FindGeoLocation was extremely inaccurate. I realize that it uses an IP lookup to make this estimate, but the location it has found is definitely not my ISP, as it is several thousand kilometers away.
WolframAlpha["Where am I?"] returns a location 5km from my home.
The confusing part is that checking
Trace[FindGeoLocation] indicates that the function contacts the Wolfram servers to run the IP trace. In my case, the result from
FindGeoLocation is for another city in Canada with a very similar name to where I live.
Sorry if this information is a bit cryptic, but I'd rather not give out my location. I have access to MMA on nearby servers with different IP addresses, and the result is the same, but I obviously can't carry out any other tests.
To clarify my intention here. I don't expect an accurate location from an IP-based lookup. I know that neither of these methods will be able to improve on actually putting my home address into Google Maps and checking the coordinates. What I'm curious about, is why these methods might return different results. Can anybody speak on how these two methods would be implemented internally such that they would disagree?
Trace. The several thousand km error isn't my main interest. Rather, I'm wondering about the discrepancy between the two sources. Why would Wolfram use two separate IP lookup services for two seemingly identical applications? $\endgroup$
$GeoLocationto your current location if you need the home location to be accurate. $\endgroup$