Understanding Internet Geolocation: Enhancing User Experiences and Security