Geolocation data is generally very inaccurate and is only as accurate as the update interval of geolocation databases and the accuracy of that data. As already mentioned by others, dynamic IPs tend to get shuffled around. The rate at which IPs move around can be faster than the rate at which geolocation databases are updated. Also, not all ISPs bother with updating their geolocation records to match the actual area where a block of IP addresses is being used. Some ISPs, like mine, simply geolocate their IP blocks at their main office or main PoP. Whenever a website uses geolocation to guess where I am, it is ~800km off.