List all IP ranges of some companies, cloud services, and popular sites. This project is a considerably extended fork of IPRanges by Lord_Alfred. I maintain this for my personal use on my home router mostly.
Amazon (AWS), Alibaba Cloud, Azure (Microsoft), Backblaze, Digital Ocean, Google Cloud, Hetzner, Hostinger, Linode, MTS Cloud, Oracle, OVHcloud, Vultr (Constant), Yandex Cloud, Akamai, CacheFly, Cloudflare, EdgeCast, Fastly, Imperva, Qrator
Bing (Microsoft), Google, Yahoo, Yandex, Facebook, LinkedIn, TikTok, Telegram, Twitter (X.com), Vkontakte, YouTube, Kinopub, Rambler
Alibaba, Amazon, Avito, Ozon.ru, Adobe, Apple, Microsoft, Sberbank, Hugging Face, GitHub, Vercel
Cogent, ExpressVPN, NordVPN, ProtonVPN, Surfshark, PIA, Mullvad, Popular VPN services servers' providers, Apple's iCloud Private Relay, Beeline, Corbina, M247, MTS, Rostelecom, Russian Government sites
Each service's downloader.sh collects ranges from one or more public sources, then CI merges them into the smallest equivalent set of CIDRs. The sources fall into a few methods:
- Official vendor feeds β published JSON/API endpoints where a provider documents its own ranges. Used for Amazon (AWS), Azure, Google / Google Cloud, Bing, Cloudflare, Fastly, GitHub, Oracle, Imperva (Incapsula), Apple iCloud Private Relay, Mullvad, NordVPN, and ProtonVPN.
- IRR route objects β
route:/route6:objects harvested by origin ASN from five Internet Routing Registry mirrors (RIPEriswhois, RADb, NTT, Rogers, andbgp.net.br). RIPE'sriswhoisalso reflects globally observed BGP announcements, so a provider's real prefixes surface even when they are not registered in any IRR. Each mirror is queried independently so one being down β or simply having no object for the ASN β never aborts the rest. - ARIN organization records β every network registered to an organization handle, via ARIN Whois-RWS (
utils/arin-org.py). Used for Apple, Adobe, Akamai, Alibaba, Backblaze, CacheFly, EdgeCast, Fastly, Twitter, Vercel, and others. - RIPE/RADb maintainer (
mnt-by) objects β every route maintained by a given maintainer handle, used mostly for regional networks: MTS, Rostelecom, Sber, Yandex, VK, Ozon, Avito, Rambler, Qrator, Hostinger, Beeline, Corbina, Kinopub. - RFC 8805 geofeeds β provider-published geolocation feeds (Cogent, Vultr/Constant, DigitalOcean, Linode).
- inetnum β CIDR conversion β RIPE
inetnumranges expanded into CIDRs byutils/ipcalc.py.
After collection, CI compresses each list with utils/merge.py (netaddr cidr_merge). A sanity-floor guard then reverts any merged list that collapses to empty or loses more than 66% of its entries in a single run, protecting a good list from being wiped by a broken or briefly-unreachable upstream. A /0 default-route guard in the relevant downloaders drops any stray 0.0.0.0/0 or ::/0 that an origin query might surface and that would otherwise collapse a whole list into one entry.
.
βββ ipv4-services.txt # index of every populated ipv4_merged.txt
βββ ipv6-services.txt # index of every populated ipv6_merged.txt
βββ [service_name]/
β βββ downloader.sh
β βββ ipv4.txt
β βββ ipv6.txt
β βββ ipv4_merged.txt
β βββ ipv6_merged.txt
βββ utils/
β βββ merge.py # collapse a list into the smallest CIDR set
β βββ arin-org.py # ARIN org handle β its registered networks
β βββ ipcalc.py # IP range β CIDRs
βββ .github/
βββ workflows/
βββ update.yml
Each service folder contains:
downloader.sh: Script for fetching IP ranges from public sourcesipv4.txt/ipv6.txt: the list of addresses (IPv4 or IPv6), which is the result of parsing one or more sourcesipv4_merged.txt/ipv6_merged.txt: optimized lists combined into the smallest possible CIDRs
The repository root also holds ipv4-services.txt/ipv6-services.txt, an index listing the path of every populated *_merged.txt file across all services.
The utils/ folder houses Python scripts for fetching and processing IP lists:
merge.py: collapses a list into the smallest equivalent set of CIDRs (netaddrcidr_merge)arin-org.py: resolves an ARIN organization handle to its registered networks via Whois-RWSipcalc.py: expands an IPv4 startβend range into CIDRs
Daily updates are managed via GitHub Actions, as defined in .github/workflows/update.yml.
Here's list of another data I use for my router configs: