How geolocation works for satellite providers

Satellite internet providers like Starlink and Geosat present unique geolocation challenges. Learn how to detect and handle satellite connections in your applications.

August 05, 2025

Satellite internet has grown dramatically in recent years, particularly with the launch of low Earth orbit (LEO) constellation services like Starlink. These services provide internet access to users in remote areas, on ships, in RVs, and even on airplanes.

Compared to standard internet service providers, satellite internet has a few unique characteristics:

  • Wide coverage areas — a single IP address might serve users across an entire continent
  • Multiple users often share the same public IP address through Network Address Translation (NAT)
  • Many satellite internet users are on the move (RVs, boats, aircraft)
  • IP addresses may be reassigned frequently as users move or reconnect

How traditional geolocation fails

Traditional IP geolocation relies on mapping IP address ranges to specific geographic locations based on registration data and network infrastructure, and sometimes on modern techniques that rely on latency and other network measurements.

This works well for terrestrial ISPs where users are relatively stationary, but breaks down for satellite providers. There are millions of satellite internet users across the entire world, and they're not all in the same place at the same time.

So how can we geolocate satellite internet users?

The short answer is that it depends on the provider.

Starlink, SpaceX's satellite internet constellation, provides a geofeed that aims to map their IP addresses to geographic locations. Geofeeds are a standard format allowing owners of IP address ranges (in this case, Starlink) to provide hints to geolocation providers, like IPLocate.

We use Starlink’s official geofeed data in our geolocation database, which helps provide more accurate location data than using registration information alone.

The idea is:

  1. Starlink provides a geofeed with a set of IP ranges across hundreds of cities, ideally covering their entire service area.
  2. When a user connects to Starlink, their IP address is assigned to one of the ranges from the geofeed that's close to their location.
  3. Geolocation providers who use Starlink’s geofeed now have a more accurate location for this user.

You can pop one of these IP ranges into our IP address lookup tool to see the location data as well as the Satellite tag. Here’s an example as of the time of writing: https://www.iplocate.io/14.1.64.0

The limitations of geofeeds

While geofeeds are a great way to get more accurate location data, they have some limitations:

  • Geofeeds only provide accuracy up to a city level, and sometimes even less
  • We rely on Starlink keeping their geofeed up to date
  • We rely on Starlink assigning IP addresses to users that map close to their known known location
  • The geofeed may not reflect real-time user movements

That said, geofeeds are currently the best way to get accurate location data for satellite internet users.

Other satellite providers

Some other satellite providers also provide geofeeds, but what about those that don’t?

In these cases, we’re limited to using network registration information, which is likely to be less accurate.

(But Geofeeds have been standardized as RFC 8805 for 5+ years now, so we really urge providers to adopt them!)

Detecting satellite connections

Whether or not a provider has a geofeed, we still track dozens of satellite internet providers in our geolocation database.

We mark these with the is_satellite field, which is available to all users in our API and downloadable database.

This lets you know when you’re dealing with a satellite internet connection, hinting that the location data might be less accurate, so you can adjust your application’s behavior accordingly.

Detecting satellite connections using our API

Our API makes it easy to identify satellite internet users:

{
  "ip": "14.1.82.0",
  "country": "Australia",
  "country_code": "AU",
  "city": "Sydney",
  // ...
  // The is_satellite field is true if the IP address is assigned
  // to a satellite internet provider.
  "is_satellite": true,
  // ...
  "asn": {
    // The Autonomous System data may also provide information
    // about the satellite internet provider. In this case,
    // Starlink is run by SpaceX.
    "asn": "AS14593",
    "netname": "SPACEX-STARLINK",
    "name": "Space Exploration Technologies Corporation",
    "country_code": "US",
    "domain": "spacex.com",
    "type": "isp"
  }
}

When is_satellite is true, remember that:

  • The location represents a general service area or registered location
  • The actual user could be anywhere within the provider's coverage area
  • The user might be mobile and change locations frequently
  • Standard geolocation accuracy assumptions don't apply

Best practices for satellite users

When you detect satellite internet users in your application, here are some best practices:

  1. Use broader geographic targeting — instead of city-level targeting, consider state or region-level.
  2. Allow for location inconsistencies. Rapid location changes are common with satellite internet.
  3. Consider latency implications. Satellite connections often have higher latency than terrestrial connections.
  4. Respect data usage, as some satellite plans have data caps or throttling.
  5. Make sure your application works well with the unique characteristics of satellite internet.

By doing this, you can build applications that work well with the unique characteristics of satellite internet.

About IPLocate

Founded in 2017, IPLocate.io provides reliable, accurate IP address geolocation and intelligence data to thousands of businesses and developers of all sizes.