{"adoption": {"forks": 163, "observed_at": "2026-08-28T04:05:05.572661+00:00", "stars": 1572}, "canonical_url": "https://ross.abutalabs.com/products/hakrevdns", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Small, fast tool for performing reverse DNS lookups en masse.", "domain": ["security", "networking", "osint"], "enriched": true, "function": ["networking", "search-engine", "cli"], "health_score": 78, "homepage": null, "language": "Go", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["hakluke/hakrevdns"], "name": "hakluke/hakrevdns", "platform": ["windows", "cli", "cross-platform"], "pushed_at": "2026-08-05T04:05:41+00:00", "repo": "hakluke/hakrevdns", "stars": 1572, "tags": ["reverse-dns", "dns-lookup", "recon", "bugbounty", "subdomain-enumeration", "go", "command-line", "linux", "macos"], "topics": [], "urls": [], "use_cases": ["perform reverse DNS lookups on an entire IP range", "find subdomains belonging to a company from their IP addresses", "pipe IP lists from prips into hostname discovery", "enumerate hostnames for bug bounty reconnaissance", "resolve PTR records using custom DNS resolvers", "output only domain names for feeding into other tools like httprobe"], "what_it_is": "hakrevdns is a small, fast Go CLI tool that performs reverse DNS (PTR) lookups on large batches of IP addresses. It maps IPs to hostnames, making it useful for discovering domains and subdomains belonging to an organization from its IP ranges.", "when_to_avoid": ["you need forward DNS lookups or full DNS enumeration rather than PTR lookups", "you want a GUI or interactive tool", "you need deep DNS record type queries beyond reverse lookups"], "when_to_choose": ["you need fast, mass reverse DNS lookups from the command line", "you want a simple pipeable tool that fits into shell-based recon workflows", "you need to map IP ranges to hostnames during OSINT or asset discovery"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/hakrevdns", "repo": "hakluke/hakrevdns", "role": "main", "score": 75}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:05.572661+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:58:10.939083+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5e21052314f95827947cb73383ab806bbbfde42477eb5e0c54b62b2b8895566", "fetched_at": "2026-08-28T04:05:05.572661+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hakluke/hakrevdns"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:05.572661+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:58:10.939083+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5e21052314f95827947cb73383ab806bbbfde42477eb5e0c54b62b2b8895566", "fetched_at": "2026-08-28T04:05:05.572661+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hakluke/hakrevdns"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:58:10.939083+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5e21052314f95827947cb73383ab806bbbfde42477eb5e0c54b62b2b8895566", "fetched_at": "2026-08-28T04:05:05.572661+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hakluke/hakrevdns"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:05:05.572661+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:05.572661+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:05.572661+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:58:10.939083+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5e21052314f95827947cb73383ab806bbbfde42477eb5e0c54b62b2b8895566", "fetched_at": "2026-08-28T04:05:05.572661+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hakluke/hakrevdns"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:05.572661+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:05.572661+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:58:10.939083+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5e21052314f95827947cb73383ab806bbbfde42477eb5e0c54b62b2b8895566", "fetched_at": "2026-08-28T04:05:05.572661+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hakluke/hakrevdns"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:05.572661+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:05.572661+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:05.572661+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:58:10.939083+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5e21052314f95827947cb73383ab806bbbfde42477eb5e0c54b62b2b8895566", "fetched_at": "2026-08-28T04:05:05.572661+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hakluke/hakrevdns"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:05.572661+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:05.572661+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:58:10.939083+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5e21052314f95827947cb73383ab806bbbfde42477eb5e0c54b62b2b8895566", "fetched_at": "2026-08-28T04:05:05.572661+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hakluke/hakrevdns"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:58:10.939083+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5e21052314f95827947cb73383ab806bbbfde42477eb5e0c54b62b2b8895566", "fetched_at": "2026-08-28T04:05:05.572661+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hakluke/hakrevdns"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:58:10.939083+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5e21052314f95827947cb73383ab806bbbfde42477eb5e0c54b62b2b8895566", "fetched_at": "2026-08-28T04:05:05.572661+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hakluke/hakrevdns"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:58:10.939083+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5e21052314f95827947cb73383ab806bbbfde42477eb5e0c54b62b2b8895566", "fetched_at": "2026-08-28T04:05:05.572661+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hakluke/hakrevdns"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 96, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2450, "days_push": 28, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 75, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}