{"id":29227106,"url":"https://github.com/shuque/goparsezone","last_synced_at":"2025-10-29T20:52:47.767Z","repository":{"id":300652744,"uuid":"1006728636","full_name":"shuque/goparsezone","owner":"shuque","description":"Parse master DNS zone format file and process it","archived":false,"fork":false,"pushed_at":"2025-06-22T22:07:01.000Z","size":14,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-22T23:18:44.231Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shuque.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2025-06-22T22:03:37.000Z","updated_at":"2025-06-22T22:07:05.000Z","dependencies_parsed_at":"2025-06-22T23:18:48.083Z","dependency_job_id":"518c2c6c-bbea-4952-a3fe-3aad41fe5be0","html_url":"https://github.com/shuque/goparsezone","commit_stats":null,"previous_names":["shuque/goparsezone"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/shuque/goparsezone","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shuque%2Fgoparsezone","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shuque%2Fgoparsezone/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shuque%2Fgoparsezone/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shuque%2Fgoparsezone/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shuque","download_url":"https://codeload.github.com/shuque/goparsezone/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shuque%2Fgoparsezone/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263296638,"owners_count":23444499,"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","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":[],"created_at":"2025-07-03T09:09:56.597Z","updated_at":"2025-10-29T20:52:42.720Z","avatar_url":"https://github.com/shuque.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DNS Zone Parser\n\nA Go program that parses DNS master file format zone files and displays their contents.\n\nWritten with the help of Cursor, mainly to evaluate its ability to generate working Go code.\n\n\n## Features\n\n- Parses standard DNS master file format\n- Handles $ORIGIN and $TTL directives\n- Supports quoted strings in RDATA\n- Handles multi-line records (like SOA)\n- Supports TTL values with time units (S, M, H, D, W)\n- Proper error handling with line numbers\n\n## Usage\n\n```bash\ngo run main.go \u003czone-file\u003e\n```\n\nOr build and run:\n\n```bash\ngo build -o dns-parser main.go\n./dns-parser \u003czone-file\u003e\n```\n\n## Example\n\n```bash\ngo run main.go example.zone\n```\n\nThis will parse the `example.zone` file and display all DNS records in a structured format.\n\n## Zone File Format\n\nThe program expects standard DNS master file format:\n\n```\n$ORIGIN example.com.\n$TTL 3600\n\n@       IN      SOA     ns1.example.com. admin.example.com. (\n                2023120101      ; serial\n                3600            ; refresh\n                1800            ; retry\n                1209600         ; expire\n                3600            ; minimum TTL\n                )\n\n@       IN      NS      ns1.example.com.\nwww     IN      A       192.168.1.20\n```\n\n## Error Handling\n\nThe program provides detailed error messages including:\n- File not found errors\n- Parsing errors with line numbers\n- Invalid record format errors\n\n## Requirements\n\n- Go 1.16 or later ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshuque%2Fgoparsezone","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshuque%2Fgoparsezone","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshuque%2Fgoparsezone/lists"}