Skip to content
InternetData

Satellite internet space, by operator.

Address ranges satellite internet operators assign to their subscribers, from low Earth orbit networks such as Starlink and Amazon Leo to geostationary ones such as Viasat and Hughes, with the operator, its orbit, the market it sells the range to, the subscribers' country and how sure we are.

Request evaluation

Schema at a glance.

See documentation →

The schema and metadata are in the docs. It is published as CSVGZ and MMDB.

start_ipend_ipproviderasnorbitsegmentcountryconfidence
75.104.64.075.104.71.255Viasat7155geoaviationUShigh
138.84.42.0138.84.43.255Starlink14593leomixedBRhigh
154.58.196.0154.58.196.255Marlink44431geomaritimeESmedium
162.249.177.0162.249.178.255SES12684meomaritimeUShigh
2631:0:1000::2631:0:11ff:ffff:ffff:ffff:ffff:ffffAmazon Leo801leomixedGBhigh
ID
satellite_ip_v1
Entries
4,146
Refresh
Daily
CSVGZ
38 KB
MMDB
89 KB

Downloading it from code.

Database API reference →

One call gets you the current Satellite IP build. Every official client wraps it three ways: straight to disk, a time-limited link you hand to your own runner, or bytes in memory, and checksums() returns the published digests to verify it against.

download()
Streams the current build to a file, which lands only once the whole transfer has arrived, so a failed one never leaves a truncated file behind.
downloadUrl()
The time-limited link the API redirects to, for your own downloader, a job runner or a CDN pull.
downloadBytes()
The build in memory, for a small database or a pipeline that never touches a filesystem.
metadata()
Row count, file sizes and when the build last updated. Poll it and fetch only when a new one has landed.
checksums()
The md5, sha1, sha256 and sha512 digests of one file, to verify it once it lands.
import os
from internetdata import InternetData
client = InternetData(os.environ["INTERNETDATA_API_KEY"])
# what is in today's build, without moving the file
meta = client.database.metadata("satellite_ip_v1")
client.database.download("satellite_ip_v1", "mmdb", "./satellite_ip_v1.mmdb")
sums = client.database.checksums("satellite_ip_v1", "mmdb")
print(meta.updated, meta.entries, sums["sha256"])
load.pypip install internetdata
Also available for .NET, Ruby, Rust, Swift, Erlang, Perl and Zig. See all on GitHub →

Where it occurs.

Satellite IP holds 4,481,598 IPv4 addresses in the latest build. These are the countries and networks with the most of them; each opens its own page, as does every IP range.

By country

Of the 4,481,598 IP Geolocation places.

  1. United States2,408,722 · 53.75%
  2. United Kingdom241,920 · 5.40%
  3. Germany180,992 · 4.04%
  4. France155,136 · 3.46%
  5. Australia84,992 · 1.90%
  6. South Africa76,032 · 1.70%
  7. Canada71,424 · 1.59%
  8. Brazil69,440 · 1.55%
  9. Norway67,584 · 1.51%
  10. Russia56,576 · 1.26%

By network

Each /24 counted for the AS announcing most of it.

  1. AS7155ViaSat,Inc.1,139,702 · 25.43%
  2. AS14593Space Exploration Technologies Corporation981,020 · 21.89%
  3. AS6621Hughes Network Systems, LLC550,912 · 12.29%
  4. AS22351INTELSAT GLOBAL SERVICE CORPORATION194,816 · 4.35%
  5. AS12684SES ASTRA S.A.180,224 · 4.02%
  6. AS29286SKYLOGIC S.P.A.164,608 · 3.67%
  7. AS801Amazon Technologies Inc.158,976 · 3.55%
  8. AS5377Marlink AS96,000 · 2.14%
  9. AS29259IABG Teleport GmbH81,920 · 1.83%
  10. AS31515Inmarsat Global Limited64,768 · 1.45%

Getting your hands on it.

Teams join Satellite IP against traffic they already log, inside their own infrastructure, and never send an address anywhere to get an answer.

Account and payment risk

Satellite operators often put many subscribers behind one address, so a ban or a rate limit on it reaches strangers. Tell those addresses apart before you act on one.

Location checks

A satellite subscriber's address can place them hundreds of kilometers from their dish. Don't read a location mismatch on one as fraud.

Analytics

Segment traffic by satellite operator, orbit and market, ships and aircraft included.

License the full database
Sales will quote on volume, term and whether you need redistribution rights.
Checksums published per file: md5, sha1, sha256 and sha512.
The id fixes the schema, so a new build never changes the columns your parser reads.
Samples are cut from the current build, not a synthetic extract.

An official client for every major language.

All SDKs on GitHub →

Twelve official clients for the languages you ship in, each wrapping the database endpoints: list what you're licensed for, poll a build, follow the download redirect and verify what landed. Install commands are in the docs.

On this page

Which operators does it cover?

Low Earth orbit networks such as Starlink, Amazon Leo and Eutelsat OneWeb, geostationary ones such as Viasat, Hughes, Eutelsat, SES, Intelsat and Kacific, and the maritime networks of Marlink, Speedcast, KVH and MTN Satellite. The provider column names the operator on every row.

00 · Evaluate

Test the real build first.

An evaluation license puts a full current build in your hands, with no sampling, so you can measure it against your own traffic before anyone talks about terms.

Request evaluation
01 · License

Then license what you use.

Standard, for detection and decisions inside your own product and operations.
Redistribution, when the data ships onward inside what you sell, priced by scope rather than by seat.
Annual terms, a named contact, and monthly, quarterly or yearly payment.