{"id":24835772,"url":"https://github.com/tobilg/public-cloud-provider-ip-ranges","last_synced_at":"2025-10-14T10:30:32.544Z","repository":{"id":155150557,"uuid":"632490108","full_name":"tobilg/public-cloud-provider-ip-ranges","owner":"tobilg","description":"Unified datasets for public cloud provider IP ranges. Providers include AWS, Azure, CloudFlare, DigitalOcean, Fastly, Google Cloud and Oracle Cloud.","archived":false,"fork":false,"pushed_at":"2025-10-06T04:05:07.000Z","size":482645,"stargazers_count":90,"open_issues_count":2,"forks_count":13,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-10-06T06:16:01.219Z","etag":null,"topics":["aws","azure","cloud","gcp","git-scraping","ipv4"],"latest_commit_sha":null,"homepage":"https://tobilg.com/gathering-and-analyzing-public-cloud-provider-ip-address-data-with-duckdb-observerable","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tobilg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-04-25T14:09:51.000Z","updated_at":"2025-10-06T04:05:10.000Z","dependencies_parsed_at":"2023-10-15T05:32:29.025Z","dependency_job_id":"1b7096e2-6703-4074-b105-189167db70cd","html_url":"https://github.com/tobilg/public-cloud-provider-ip-ranges","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tobilg/public-cloud-provider-ip-ranges","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tobilg%2Fpublic-cloud-provider-ip-ranges","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tobilg%2Fpublic-cloud-provider-ip-ranges/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tobilg%2Fpublic-cloud-provider-ip-ranges/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tobilg%2Fpublic-cloud-provider-ip-ranges/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tobilg","download_url":"https://codeload.github.com/tobilg/public-cloud-provider-ip-ranges/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tobilg%2Fpublic-cloud-provider-ip-ranges/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279018780,"owners_count":26086452,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-14T02:00:06.444Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","azure","cloud","gcp","git-scraping","ipv4"],"created_at":"2025-01-31T04:51:43.952Z","updated_at":"2025-10-14T10:30:31.427Z","avatar_url":"https://github.com/tobilg.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# public-cloud-provider-ip-ranges\nThis repository provides unified and cleaned datasets for public cloud provider IP ranges, as CSV and Parquet files.\n\n## Data sources\nThe following public cloud providers are covered by this repo:\n\n* [AWS](https://ip-ranges.amazonaws.com/ip-ranges.json)\n* [Azure](https://download.microsoft.com/download/7/1/D/71D86715-5596-4529-9B13-DA13A5DE5B63/ServiceTags_Public_20230508.json)\n* [CloudFlare](https://www.cloudflare.com/ips-v4)\n* [DigitalOcean](https://digitalocean.com/geo/google.csv)\n* [Fastly](https://api.fastly.com/public-ip-list)\n* [Google Cloud](https://www.gstatic.com/ipranges/cloud.json)\n* [Linode](https://geoip.linode.com/)\n* [Oracle Cloud](https://docs.oracle.com/en-us/iaas/tools/public_ip_ranges.json)\n\n## Generated data\nThe generated data can be found in the [data](data/) directory.\n\nYou can query the data with [SQL Workbench](https://sql-workbench.com/#queries=v0,ATTACH-'https%3A%2F%2Fraw.githubusercontent.com%2Ftobilg%2Fpublic%20cloud%20provider%20ip%20ranges%2Fmain%2Fdata%2Fdb%2Fip%20ranges.duckdb'-as-ip-(READ_ONLY)~,SELECT-*-from-%22ip%22.ip_data~) directly in the browser.\n\nAlso, you can attach the generated DuckDB database with\n\n```sql\nATTACH 'https://raw.githubusercontent.com/tobilg/public-cloud-provider-ip-ranges/main/data/db/ip-ranges.duckdb' as ip (READ_ONLY);\n```\n\nand then query the data with\n\n```sql\nSELECT * FROM ip.ip_data;\n```\n\n### All providers combined\n* All: [CSV](https://raw.githubusercontent.com/tobilg/public-cloud-provider-ip-ranges/main/data/providers/all.csv) / [Parquet](https://github.com/tobilg/public-cloud-provider-ip-ranges/raw/main/data/providers/all.parquet) / [JSON](https://raw.githubusercontent.com/tobilg/public-cloud-provider-ip-ranges/main/data/providers/all.json)\n\n### Single providers\n* AWS: [CSV](https://raw.githubusercontent.com/tobilg/public-cloud-provider-ip-ranges/main/data/providers/aws.csv) / [Parquet](https://github.com/tobilg/public-cloud-provider-ip-ranges/raw/main/data/providers/aws.parquet) / [JSON](https://raw.githubusercontent.com/tobilg/public-cloud-provider-ip-ranges/main/data/providers/aws.json)\n* Azure: [CSV](https://raw.githubusercontent.com/tobilg/public-cloud-provider-ip-ranges/main/data/providers/azure.csv) / [Parquet](https://github.com/tobilg/public-cloud-provider-ip-ranges/raw/main/data/providers/azure.parquet) / [JSON](https://raw.githubusercontent.com/tobilg/public-cloud-provider-ip-ranges/main/data/providers/azure.json)\n* CloudFlare: [CSV](https://raw.githubusercontent.com/tobilg/public-cloud-provider-ip-ranges/main/data/providers/cloudflare.csv) / [Parquet](https://github.com/tobilg/public-cloud-provider-ip-ranges/raw/main/data/providers/cloudflare.parquet) / [JSON](https://raw.githubusercontent.com/tobilg/public-cloud-provider-ip-ranges/main/data/providers/cloudflare.json)\n* DigitalOcean: [CSV](https://raw.githubusercontent.com/tobilg/public-cloud-provider-ip-ranges/main/data/providers/digitalocean.csv) / [Parquet](https://github.com/tobilg/public-cloud-provider-ip-ranges/raw/main/data/providers/digitalocean.parquet) / [JSON](https://raw.githubusercontent.com/tobilg/public-cloud-provider-ip-ranges/main/data/providers/digitalocean.json)\n* Fastly: [CSV](https://raw.githubusercontent.com/tobilg/public-cloud-provider-ip-ranges/main/data/providers/fastly.csv) / [Parquet](https://github.com/tobilg/public-cloud-provider-ip-ranges/raw/main/data/providers/fastly.parquet) / [JSON](https://raw.githubusercontent.com/tobilg/public-cloud-provider-ip-ranges/main/data/providers/fastly.json)\n* Google Cloud: [CSV](https://raw.githubusercontent.com/tobilg/public-cloud-provider-ip-ranges/main/data/providers/googlecloud.csv) / [Parquet](https://github.com/tobilg/public-cloud-provider-ip-ranges/raw/main/data/providers/googlecloud.parquet) / [JSON](https://raw.githubusercontent.com/tobilg/public-cloud-provider-ip-ranges/main/data/providers/googlecloud.json)\n* Linode: [CSV](https://raw.githubusercontent.com/tobilg/public-cloud-provider-ip-ranges/main/data/providers/linode.csv) / [Parquet](https://github.com/tobilg/public-cloud-provider-ip-ranges/raw/main/data/providers/linode.parquet) / [JSON](https://raw.githubusercontent.com/tobilg/public-cloud-provider-ip-ranges/main/data/providers/linode.json)\n* Oracle Cloud: [CSV](https://raw.githubusercontent.com/tobilg/public-cloud-provider-ip-ranges/main/data/providers/oracle.csv) / [Parquet](https://github.com/tobilg/public-cloud-provider-ip-ranges/raw/main/data/providers/oracle.parquet) / [JSON](https://raw.githubusercontent.com/tobilg/public-cloud-provider-ip-ranges/main/data/providers/oracle.json)\n\n## Data format\nThere are three versions of each dataset, a CSV and a Parquet version in columnar style, and a JSON version.\n\n### Columnar schema\nThe data format of both columnar versions looks like this:\n\n| Column name | Data type | Description |\n| ----------- | --------- | ----------- |\n| cloud_provider | VARCHAR | The public cloud provider name |\n| cidr_block | VARCHAR | The CIDR block, e.g. `10.0.0.0/32` |\n| ip_address | VARCHAR |The IP address, e.g. `10.0.0.0` |\n| ip_address_mask | INTEGER | The IP address mask, e.g. `32` |\n| ip_address_cnt | INTEGER | The number of IP addresses in this CIDR block |\n| region | VARCHAR | The pubilic cloud provider region information (if given) |\n\n### JSON schema\nThe JSON schema of the exported data is\n\n```json\n{\n    \"$schema\": \"https://json-schema.org/draft-07/schema\",\n    \"title\": \"Public Cloud Provider JSON export schema\",\n    \"type\": \"array\",\n    \"items\": {\n        \"title\": \"CIDR block record\",\n        \"type\": \"object\",\n        \"required\": [\n            \"cidr_block\",\n            \"ip_address\",\n            \"ip_address_mask\",\n            \"ip_address_cnt\",\n            \"region\"\n        ],\n        \"properties\": {\n            \"cidr_block\": {\n                \"title\": \"The CIDR block\",\n                \"type\": \"string\",\n                \"examples\": [\n                    \"129.146.0.0/21\"\n                ]\n            },\n            \"ip_address\": {\n                \"title\": \"The IP address\",\n                \"type\": \"string\",\n                \"examples\": [\n                    \"129.146.0.0\"\n                ]\n            },\n            \"ip_address_mask\": {\n                \"title\": \"The IP address mask\",\n                \"type\": \"integer\",\n                \"examples\": [\n                    21\n                ]\n            },\n            \"ip_address_cnt\": {\n                \"title\": \"The number of IP addresses in this CIDR block\",\n                \"type\": \"integer\",\n                \"examples\": [\n                    2048\n                ]\n            },\n            \"region\": {\n                \"title\": \"The respective public cloud provider region\",\n                \"type\": \"string\",\n                \"examples\": [\n                    \"us-phoenix-1\"\n                ]\n            }\n        },\n        \"examples\": [{\n            \"cidr_block\": \"129.146.0.0/21\",\n            \"ip_address\": \"129.146.0.0\",\n            \"ip_address_mask\": 21,\n            \"ip_address_cnt\": 2048,\n            \"region\": \"us-phoenix-1\"\n        }]\n    }\n}\n```\n\n## Automatic updates\nThe CI pipeline will check for AWS IAM docs updates everyday at 4AM UTC, and automatically publish a new patch version if updates are detected.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftobilg%2Fpublic-cloud-provider-ip-ranges","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftobilg%2Fpublic-cloud-provider-ip-ranges","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftobilg%2Fpublic-cloud-provider-ip-ranges/lists"}