{"id":19684176,"url":"https://github.com/aydinnyunus/ipvalidator","last_synced_at":"2026-06-12T00:31:41.415Z","repository":{"id":244928870,"uuid":"816743628","full_name":"aydinnyunus/ipValidator","owner":"aydinnyunus","description":"ipValidator is a Go library designed to help developers easily filter out and validate IP addresses based on various criteria. It allows you to check if an IP address falls into reserved categories such as loopback, link-local, multicast, or private addresses. ","archived":false,"fork":false,"pushed_at":"2024-06-18T10:47:01.000Z","size":20,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-26T00:08:10.127Z","etag":null,"topics":["go","golang","network","security"],"latest_commit_sha":null,"homepage":"","language":"Go","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/aydinnyunus.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":"2024-06-18T10:17:30.000Z","updated_at":"2024-10-08T11:02:15.000Z","dependencies_parsed_at":"2024-06-18T11:53:32.476Z","dependency_job_id":null,"html_url":"https://github.com/aydinnyunus/ipValidator","commit_stats":null,"previous_names":["aydinnyunus/ipvalidator"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aydinnyunus/ipValidator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aydinnyunus%2FipValidator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aydinnyunus%2FipValidator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aydinnyunus%2FipValidator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aydinnyunus%2FipValidator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aydinnyunus","download_url":"https://codeload.github.com/aydinnyunus/ipValidator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aydinnyunus%2FipValidator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34224103,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-11T02:00:06.485Z","response_time":57,"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":["go","golang","network","security"],"created_at":"2024-11-11T18:17:01.819Z","updated_at":"2026-06-12T00:31:41.349Z","avatar_url":"https://github.com/aydinnyunus.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ipValidator\n\n`ipValidator` is a Go library designed to help developers easily filter out and validate IP addresses based on various criteria. It allows you to check if an IP address falls into reserved categories such as loopback, link-local, multicast, or private addresses. This can be useful in various scenarios, such as preventing requests to non-routable addresses or securing network communications.\n\n## Features\n\n- **Loopback Address Check**: Detects and optionally disallows loopback addresses (e.g., `127.0.0.1` and `::1`).\n- **Link-Local Address Check**: Detects and optionally disallows link-local addresses (e.g., `169.254.0.0/16` for IPv4 and `fe80::/10` for IPv6).\n- **Multicast Address Check**: Detects and optionally disallows multicast addresses (e.g., `224.0.0.0/4` for IPv4 and `ff00::/8` for IPv6).\n- **Private Address Check**: Detects and optionally disallows private addresses (e.g., `10.0.0.0/8`, `172.16.0.0/12`, and `192.168.0.0/16` for IPv4).\n- **Customizable Filters**: Easily enable or disable specific checks based on your requirements.\n\n## Installation\n\nTo install `ipValidator`, use `go get`:\n\n```bash\ngo get github.com/aydinnyunus/ipValidator/ipValidator\n```\n\n## Usage\n\n### Creating a Default Filter\n\nBy default, all reserved IP checks are enabled:\n\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\t\"github.com/aydinnyunus/ipValidator/ipValidator\"\n)\n\nfunc main() {\n\t// Create a filter with default settings (all flags set to false)\n\tdefaultFilter := ipValidator.NewDefaultValidator()\n\n\ttestIPs := []string{\n\t\t\"127.0.0.1\",\n\t\t\"::1\",\n\t\t\"169.254.0.1\",\n\t\t\"192.168.1.1\",\n\t\t\"224.0.0.1\",\n\t\t\"8.8.8.8\",\n\t\t\"2001:db8::\",\n\t\t\"[::1]\",\n\t\t\"216.58.212.14\",\n\t}\n\n\tfmt.Println(\"Default Validator :\")\n\tfor _, ipStr := range testIPs {\n\t\tif defaultFilter.IsReserved(ipStr) == 1 {\n\t\t\tfmt.Printf(\"\\t- %s is a reserved IP address\\n\", ipStr)\n\t\t} else if defaultFilter.IsReserved(ipStr) == -1 {\n\t\t\tfmt.Printf(\"\\t- %s is not a valid IP address\\n\", ipStr)\n\t\t} else {\n\t\t\tfmt.Printf(\"\\t- %s is not a reserved IP address\\n\", ipStr)\n\t\t}\n\t}\n\n}\n```\n\n### Creating a Custom Filter\n\nYou can customize the filter to disallow specific types of addresses:\n\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\t\"github.com/aydinnyunus/ipValidator/ipValidator\"\n)\n\nfunc main() {\n\t// Create a custom filter with specific flags\n\tcustomFilter := ipValidator.NewValidator(true, false, true, false, false)\n\n\ttestIPs := []string{\n\t\t\"127.0.0.1\",\n\t\t\"::1\",\n\t\t\"169.254.0.1\",\n\t\t\"192.168.1.1\",\n\t\t\"224.0.0.1\",\n\t\t\"8.8.8.8\",\n\t\t\"2001:db8::\",\n\t}\n\n\tfor _, ipStr := range testIPs {\n\t\tif customFilter.IsReserved(ipStr) == 1 {\n\t\t\tfmt.Printf(\"\\t- %s is a reserved IP address\\n\", ipStr)\n\t\t} else if customFilter.IsReserved(ipStr) == -1 {\n\t\t\tfmt.Printf(\"\\t- %s is not a valid IP address\\n\", ipStr)\n\t\t} else {\n\t\t\tfmt.Printf(\"\\t- %s is not a reserved IP address\\n\", ipStr)\n\t\t}\n\t}\n}\n```\n\n## License\n\n`ipValidator` is licensed under the MIT License. See the [LICENSE](LICENSE) file for more details.\n\n## Contact\n\n[\u003cimg target=\"_blank\" src=\"https://img.icons8.com/bubbles/100/000000/linkedin.png\" title=\"LinkedIn\"\u003e](https://linkedin.com/in/yunus-ayd%C4%B1n-b9b01a18a/) [\u003cimg target=\"_blank\" src=\"https://img.icons8.com/bubbles/100/000000/github.png\" title=\"Github\"\u003e](https://github.com/aydinnyunus/) [\u003cimg target=\"_blank\" src=\"https://img.icons8.com/bubbles/100/000000/instagram-new.png\" title=\"Instagram\"\u003e](https://instagram.com/aydinyunus_/) [\u003cimg target=\"_blank\" src=\"https://img.icons8.com/bubbles/100/000000/twitter-squared.png\" title=\"LinkedIn\"\u003e](https://twitter.com/aydinnyunuss)\n\n\u003c!-- MARKDOWN LINKS \u0026 IMAGES --\u003e\n\u003c!-- https://www.markdownguide.org/basic-syntax/#reference-style-links --\u003e\n\n[contributors-shield]: https://img.shields.io/github/contributors/usestrix/cli.svg?style=for-the-badge\n\n[contributors-url]: https://github.com/aydinnyunus/ipValidator/graphs/contributors\n\n\n[forks-url]: https://github.com/aydinnyunus/ipValidator/network/members\n\n\n[stars-url]: https://github.com/aydinnyunus/ipValidator/stargazers\n\n\n[issues-url]: https://github.com/aydinnyunus/ipValidator/issues\n\n\n[license-url]: https://github.com/aydinnyunus/ipValidator/blob/master/LICENSE.txt\n\n[linkedin-url]: https://linkedin.com/in/aydinnyunus\n\n[latest-release]: https://github.com/aydinnyunus/ipValidator/releases\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faydinnyunus%2Fipvalidator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faydinnyunus%2Fipvalidator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faydinnyunus%2Fipvalidator/lists"}