See screenshot below. Airbnb knew my location was in Los Angeles. I visited the page in incognito mode. I'm not logged in. I did not consent to geolocation via HTML5 (the browser didn't even prompt me). So how do sites like Airbnb know my location?
My guess is with my IP address. If that's the case, could someone show me how I could replicate that if I were to build a site? Is there an API by Google or someone that provides that service? As far as I can tell the majority of Google Maps' API requires some sort of user input.
Nowadays, it quite common to geolocate users based on their IP addresses. Despite what people may argue, IP geolocation, especially country estimation is really accurate (more than 99% for IP addresses assigned in developed countries).
Some users may hide their real IP address using a proxy. That's why services such as Ipregistry (disclaimer: I run the service) include threat data along with IP geolocation data. This way you can detect suspicious IP addresses.
Getting information is as simple as calling an HTTP endpoint: