{"id":29884226,"url":"https://github.com/kernferm/subnet-calculator","last_synced_at":"2025-08-22T20:06:46.808Z","repository":{"id":305285753,"uuid":"1022481543","full_name":"KernFerm/Subnet-Calculator","owner":"KernFerm","description":"A modern, user-friendly GUI tool for calculating and visualizing IPv4/IPv6 subnets. Easily analyze networks, split into subnets, and check IPs for IT professionals, students, and enthusiasts.","archived":false,"fork":false,"pushed_at":"2025-07-19T07:35:14.000Z","size":50,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-19T11:27:38.542Z","etag":null,"topics":["enthusiasts","professional","students","subnet-calculator","user-friendly-interface"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/KernFerm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"License","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-19T06:56:08.000Z","updated_at":"2025-07-19T07:36:03.000Z","dependencies_parsed_at":"2025-07-19T11:27:40.747Z","dependency_job_id":"005af0a1-7b0f-4675-a153-5a01093bd196","html_url":"https://github.com/KernFerm/Subnet-Calculator","commit_stats":null,"previous_names":["kernferm/subnet-calculator"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/KernFerm/Subnet-Calculator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KernFerm%2FSubnet-Calculator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KernFerm%2FSubnet-Calculator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KernFerm%2FSubnet-Calculator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KernFerm%2FSubnet-Calculator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KernFerm","download_url":"https://codeload.github.com/KernFerm/Subnet-Calculator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KernFerm%2FSubnet-Calculator/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268057805,"owners_count":24188632,"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-07-31T02:00:08.723Z","response_time":66,"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":["enthusiasts","professional","students","subnet-calculator","user-friendly-interface"],"created_at":"2025-07-31T14:44:32.847Z","updated_at":"2025-07-31T14:44:40.239Z","avatar_url":"https://github.com/KernFerm.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\r\n# Subnet Calculator\r\n\r\n**A modern, user-friendly GUI tool for calculating and visualizing IPv4/IPv6 subnets. Easily analyze networks, split into subnets, and check IPs for IT professionals, students, and enthusiasts.**\r\n\r\n---\r\n\r\n## 🚀 Features\r\n\r\n- **IPv4 \u0026 IPv6 support**: Calculate subnets for both address types.\r\n- **CIDR and netmask input**: Accepts both CIDR notation (e.g. `192.168.1.0/24`) and netmask (e.g. `255.255.255.0`).\r\n- **Subnetting**: Split a network into smaller subnets with a chosen prefix length.\r\n- **IP Lookup**: Check if an IP address belongs to the calculated network.\r\n- **Export results**: Save results as TXT, CSV, or JSON for easy sharing or analysis.\r\n- **Copy to clipboard**: Quickly copy results for use elsewhere.\r\n- **Recent calculations history**: View your last 10 calculations.\r\n- **Network visualization**: See a graphical representation of your network and host range.\r\n- **Theme switching**: Choose between Light, Dark, or System themes.\r\n- **Keyboard shortcuts**: Fast access to common actions.\r\n\r\n---\r\n\r\n## 🖥️ Requirements\r\n\r\n- Python 3.11+ (Tested on Python 3.11.9)\r\n- [customtkinter](https://github.com/TomSchimansky/CustomTkinter)\r\n\r\nInstall dependencies:\r\n\r\n```bash\r\npip install customtkinter\u003e=5.2.2\r\n```\r\n\r\n---\r\n\r\n## 📦 Installation\r\n\r\n1. **Clone this repository:**\r\n    ```bash\r\n    git clone https://github.com/KernFerm/Subnet-Calculator.git\r\n    cd subnet-calculator\r\n    ```\r\n2. **Install dependencies:**\r\n    ```bash\r\n    pip install customtkinter\r\n    ```\r\n3. **Run the app:**\r\n    ```bash\r\n    python subnet_calculator.py\r\n    ```\r\n\r\n---\r\n\r\n## 📝 How to Use\r\n\r\n1. **Enter an IP address or CIDR notation** in the Network Input section (e.g. `192.168.1.0` or `192.168.1.0/24` or `2001:db8::`).\r\n2. **Enter a prefix length** (e.g. `24` for IPv4, `64` for IPv6) or a netmask (IPv4 only).\r\n3. **Select IP version** (IPv4 or IPv6).\r\n4. Click **Calculate** or press `Ctrl+R` to compute results.\r\n5. View results in the Results section:\r\n    - Network address\r\n    - Netmask\r\n    - Wildcard mask\r\n    - Broadcast address (IPv4)\r\n    - Total hosts\r\n    - Host range\r\n6. Use **Subnetting** to split the network into subnets:\r\n    - Enter a subnet prefix length greater than the main network's prefix.\r\n    - Click **Show Subnets** to view all subnets and their host ranges.\r\n7. Use **IP Lookup** to check if an IP is in the network.\r\n8. **Export results** using the File menu or Export buttons (TXT, CSV, JSON).\r\n9. **Copy results** using the Copy buttons or Edit menu.\r\n10. **Change theme** in the View menu.\r\n11. **See recent calculations** in the right panel.\r\n\r\n---\r\n\r\n## ⌨️ Keyboard Shortcuts\r\n\r\n- `Ctrl+C`: Copy Network\r\n- `Ctrl+E`: Export Results\r\n- `Ctrl+R`: Calculate\r\n\r\n---\r\n\r\n## 📤 Export Formats\r\n\r\n- **TXT**: Human-readable results\r\n- **CSV**: For spreadsheets\r\n- **JSON**: For scripts and automation\r\n\r\n---\r\n\r\n## ❓ Troubleshooting\r\n\r\n- If the app does not start, ensure you have Python 3.11.9 and `customtkinter` installed.\r\n- For display issues, try switching themes in the View menu.\r\n- For errors with IP or mask input, check the format and refer to the help section in the app.\r\n\r\n---\r\n\r\n## 🤝 Contributing\r\n\r\nContributions, suggestions, and bug reports are welcome! Please open an issue or submit a pull request.\r\n\r\n---\r\n\r\n## 📄 License\r\n```\r\nLearning License\r\n===============\r\n\r\nThis software is provided for educational and personal learning purposes only. \r\nYou are free to use, modify, and share this code for non-commercial, instructional, \u0026 self-study activities.\r\n\r\nRestrictions:\r\n- Commercial use, distribution, or resale is not permitted.\r\n- No warranty is provided; use at your own risk.\r\n- Please credit the original author if sharing or adapting the code.\r\n\r\nFor other uses, please contact the author for permission.\r\n```\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkernferm%2Fsubnet-calculator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkernferm%2Fsubnet-calculator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkernferm%2Fsubnet-calculator/lists"}