Configuring Custom Geolocation

Updated: Oct 26, 2020

Written by: Andrew Connnely

There was a time when the internet was fairly anonymous and the systems a computer-user connected to didn’t collect any information.  In 2019, almost all ‘connected’ applications require some form of data about their users so they may function properly, sign-in, or tailor experience based on preferences. Many of these data functions occur without any required interaction, especially when it comes to visiting websites from a web browser.

One of the most common pieces of data used by browsers is location. Most often, this data point powers benign site features, like recommending local food options, providing directions from your current location, automatically selecting language options, or authenticating location-specific services. Nine times out of ten, there isn’t any reason to change your location, but occasionally the need arises.

The use-cases for why a user might want to modify this information are numerous:  testing web development, accessing geo-specific web services, maybe more personal reasons, like privacy concerns. Knowing how to change your location can be useful, but it can also be complicated.

There are two main ways to modify the location reported by your computer. Which one you use will depend on what you want to achieve. Below, we will discuss both methods, what they do, and how do use them.

At the Network Level Many modern computer users are familiar with the concept of software Virtual Private Network, or VPN, connections. They come in many different styles and provide security that even the average user needs when accessing sensitive data, like Banking and company files, while on Public WIFI networks.

One of the benefits of using a VPN is being able to choose what location you are connecting from. Most times, the user will choose to connect from their current location to take advantage of the quickest network speeds, but occasionally, a task will require the appearance of being in a particular place. VPNs offer the helpful options of allowing the user to choose their location at the network level.

In this example, we are using a VPN service called “Private Internet Access”, which (like all VPNs) routes your internet traffic through any number of their remote servers, giving the user the appearance of being in that location. This is accomplished by sending your traffic through the VPN providers’ server – and hence, the users location becomes that server.

The majority of IP addresses are allocated in blocks assigned-to and then distributed-by Internet Service Providers (ISPs). Location information is attached to each of those IP addresses, so if you look up that address, you can see the general location the IP address is used from. Using a website called iplocation.com can show where the website thinks I am.

It’s true I am in Miami, FL. But not at the location shown above. That is the general location of the IP address of my VPN.

With the click of a button, I can be in Las Vegas, NV.

VPNs establish a secure tunnel from your computer to a remote (sometimes far-away) VPN server. My internet traffic flows from my computer to that server through that secure tunnel and doesn’t go out into the world until it leaves that remote server. Because of this, it appears that I am at the same location as that server; whether that be across town or on the other side of the world.

But what happens when an application doesn’t bother to ask the IP address or network where it is? What happens when it’s the application that is reporting it’s location, not the network? In this case, changing IP addresses doesn’t do anything. But why?

Without diving too deep into the technical aspects of networks, this happens because IP-locations are sourced from the Network Layer, where “IP Addresses” reside.  Applications (like Browsers) can also independently report their location within the Application Layer. Neither can really change what the other reports.

This is where our second method comes in.

At the Application Level

So how do we change where an application reports its location and why is this useful?  For the average user, needing to change application-level geolocation is most common from within a browser. Below, you can see that despite being connected to a New York VPN Server, Google Maps reports my real location accurately.

For example, say we are traveling and want to use a web-based broadcast TV service (like locast.org) from our home town, but that service can detect that we aren’t located within the city.

Or maybe we are creating a web-app that needs access to user location and we want to test our work.

These sites likely uses the same method that Google Maps uses to locate us – HTML 5.

To bypass this, we would need to instruct the browser to report our location from within that city; say San Francisco.

Chrome Chrome Geolocation settings are remembered from within a single tab and only as long as you keep the tab open. If you close the tab, your settings revert back to the default.

To change this setting, press (CTRL+SHIFT+I), or select Menu > More Tools > Developer Tools. From within this window, select the three dots again for the Developer Menu and select More Tools > Sensors.

At the bottom of the Developer Screen, you can see Geolocation settings.

Change the drop down menu from “No Override” to, for our example, “San Francisco”. Refresh your tab and the browsers location will now report San Francisco. If you are in Google Maps, you will need to click the target button again to update your location.

Firefox

The method in each browser is different. For Firefox, go to the address bar and type in “about:config” Agree to the warning dialogue to continue.

Search for geo.wifi.uri in the search box. Double click this value to edit it.

From here, you can change your geolocation.

Firefox, unlike Chrome, remembers your settings perpetually, so be sure to save the default settings into a note pad in case you want to revert to them. They are:

https://www.googleapis.com/geolocation/v1/geolocate?key=%GOOGLE_LOCATION_SERVICE_API_KEY%

Alternatively, you can just create a new location for your “home” location and save it to the list. To create a custom location, change the value to the following:

data:application/json,{“location”: {“lat”: 37.77, “lng”: -122.43}, “accuracy”: 5.0}

Of course, you will need to modify your desired latitude and longitude values.

If you want to know the latitude & longitude info for a city, you can find it here: https://www.latlong.net/

If you want to know the coordinates for your current location, you can find it here: https://www.maps.ie/coordinates.html

Summary

By now, you should understand how to change your network and application -level geolocations and what the difference is between the two. Happy travels!

7 views0 comments

Recent Posts

See All

Print Security Threats

Written by: Andrew Connnely When technology users or even IT professionals think of security vulnerabilities, their first thoughts immediately focus on the networks or computers; which are the most co

Speed Tests

Written by: Andrew Connnely Most of us over the age of 25 remember the days of dial-up internet – where we had to “connect” to the internet, and if we did, we tied up the phone line so other people in