{"id":18538942,"url":"https://github.com/eitrtechnologies/subnet_gap_finder","last_synced_at":"2026-04-22T23:35:41.858Z","repository":{"id":120633528,"uuid":"231154165","full_name":"eitrtechnologies/subnet_gap_finder","owner":"eitrtechnologies","description":"Utility script to show unused gaps in IP space within a list of networks","archived":false,"fork":false,"pushed_at":"2019-12-31T23:35:48.000Z","size":11,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-22T17:44:55.947Z","etag":null,"topics":["aws","aws-networking","networking","subnets","vpc"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eitrtechnologies.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}},"created_at":"2019-12-31T22:50:52.000Z","updated_at":"2022-12-02T21:54:39.000Z","dependencies_parsed_at":null,"dependency_job_id":"a589aa7d-c01c-4bca-a9e8-a00f8993a9f3","html_url":"https://github.com/eitrtechnologies/subnet_gap_finder","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/eitrtechnologies/subnet_gap_finder","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eitrtechnologies%2Fsubnet_gap_finder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eitrtechnologies%2Fsubnet_gap_finder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eitrtechnologies%2Fsubnet_gap_finder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eitrtechnologies%2Fsubnet_gap_finder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eitrtechnologies","download_url":"https://codeload.github.com/eitrtechnologies/subnet_gap_finder/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eitrtechnologies%2Fsubnet_gap_finder/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32159959,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-22T17:06:48.269Z","status":"ssl_error","status_checked_at":"2026-04-22T17:06:19.037Z","response_time":58,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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","aws-networking","networking","subnets","vpc"],"created_at":"2024-11-06T19:45:37.127Z","updated_at":"2026-04-22T23:35:41.842Z","avatar_url":"https://github.com/eitrtechnologies.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Subnet Gap Finder\nUtility script to show unused gaps in IP space within a list of networks.\n\n## Background\nThis script was born out of a need to find unused subnet space within a large,\nmicro-segmented VPC in AWS. Sorting the subnets and looking for spaces manually\nisn't easy on the eyes. The first iteration of this script used a file input\nwhich was accomplished by copying and pasting subnets out of the AWS UI and then\nmassaging the data to remove the extra information. Once I proved that the logic\nworked, I added the functionality necessary to get the subnet information\nstraight from the source. I hope you find it useful.\n\n## Usage\nThe script takes *either* the `filename` *or* the `vpcid` argument... not both.\n```\nusage: subnet_gap_finder.py [-h] [--filename FILENAME] [--loglevel LOGLEVEL]\n                            [--vpcid VPC_ID]\n\nUtility script to show unused gaps in IP space within a list of networks.\n\noptional arguments:\n  -h, --help            show this help message and exit\n  --filename FILENAME, -f FILENAME\n                        Path to a file containing a list of IP networks.\n                        EITHER \"filename\" OR \"vpcid\" IS REQUIRED\n  --loglevel LOGLEVEL, -l LOGLEVEL\n                        Specify log level as text string: ERROR, WARNING,\n                        INFO, DEBUG\n  --vpcid VPC_ID, -i VPC_ID\n                        ID of a VPC in AWS to query. Subnets will be checked\n                        as the list of networks. EITHER \"filename\" OR \"vpcid\"\n                        IS REQUIRED.\n```\n\n### File input\nFile input expects a newline-separated list of subnets in the file. Any line\ncontaining other text is thrown out, so you don't need to clean up your data too\nmuch.\n```\n$ python3 subnet_gap_finder.py --filename tests/example.txt\n| Gap Start   | Gap End    | Gap CIDRs     |\n|-------------+------------+---------------|\n| 10.0.6.128  | 10.0.6.255 | 10.0.6.128/25 |\n| 10.0.7.32   | 10.0.7.63  | 10.0.7.32/27  |\n| 10.0.7.128  | 10.0.7.159 | 10.0.7.128/27 |\n```\n\n### VPC ID\nVPC mode basically works the same way, with the exception that we can also see\nunused space at the end of the last subnet until the end of the VPC address\nspace. This is (currently) only shown if there aren't any gaps between subnets.\n\n**NOTE**: We're not handling AWS authentication in the script. Ensure that you\nauthenticate via the AWS CLI prior to running.\n```\n$ python3 subnet_gap_finder.py --vpcid vpc-a675b09\n| Gap Start   | Gap End     | Gap CIDRs     |\n|-------------+-------------+---------------|\n| 10.0.8.0    | 10.0.15.255 | 10.0.8.0/21   |\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feitrtechnologies%2Fsubnet_gap_finder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feitrtechnologies%2Fsubnet_gap_finder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feitrtechnologies%2Fsubnet_gap_finder/lists"}