{"adoption": {"forks": 1312, "observed_at": "2026-08-28T04:08:11.355806+00:00", "stars": 3597}, "canonical_url": "https://ross.abutalabs.com/products/xunfeng", "card": {"archived": false, "artifact_type": "application", "description": "巡风是一款适用于企业内网的漏洞快速应急，巡航扫描系统。", "domain": ["security", "penetration-testing", "networking", "self-hosted"], "enriched": true, "function": ["security", "vulnerability-scanning", "search-engine", "web-framework", "scheduling"], "health_score": 20, "homepage": null, "language": "Python", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "maintenance", "member_repos": ["ysrc/xunfeng"], "name": "ysrc/xunfeng", "platform": ["windows", "python", "self-hosted"], "pushed_at": "2024-04-16T23:50:57+00:00", "repo": "ysrc/xunfeng", "stars": 3597, "tags": ["internal-network-scanner", "asset-discovery", "vulnerability-assessment", "masscan", "enterprise-security", "python2", "linux", "macos", "docker", "web-server"], "topics": ["security", "pentesting", "infosec", "exploits", "security-audit", "vulnerability-detection", "scanner", "vulnerability-assessment", "vulnerability-scanners"], "urls": [], "use_cases": ["scan internal network for assets and open ports", "discover services and CMS fingerprints across an intranet", "run scheduled vulnerability checks with custom plugins", "detect weak passwords like FTP brute force", "generate vulnerability reports for security audits", "quickly respond to new CVEs across internal hosts"], "what_it_is": "Xunfeng is a self-hosted web application for rapid vulnerability emergency response and continuous scanning of enterprise internal networks. It combines a network asset identification engine (port scanning via MASSCAN, service/CMS fingerprinting) with a plugin-based vulnerability detection engine manageable through a web console.", "when_to_avoid": ["you need a modern actively developed tool - it targets Python 2.7 and MongoDB 3.4", "you need external internet-wide scanning rather than internal network cruising", "you require Windows-native agents or cloud-managed scanning"], "when_to_choose": ["you need a self-hosted internal network asset inventory and vulnerability scanner", "you want a web UI to manage scheduled scans and Python/JSON vulnerability plugins", "you are doing authorized enterprise intranet security assessments"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/xunfeng", "repo": "ysrc/xunfeng", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:11.355806+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:33:47.349477+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "301684bf9c1c8a4949b23385532428cbeb42e44a8af65cf831bd74db833f58c5", "fetched_at": "2026-08-28T04:08:11.355806+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ysrc/xunfeng"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:11.355806+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:33:47.349477+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "301684bf9c1c8a4949b23385532428cbeb42e44a8af65cf831bd74db833f58c5", "fetched_at": "2026-08-28T04:08:11.355806+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ysrc/xunfeng"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:33:47.349477+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "301684bf9c1c8a4949b23385532428cbeb42e44a8af65cf831bd74db833f58c5", "fetched_at": "2026-08-28T04:08:11.355806+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ysrc/xunfeng"}], "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:08:11.355806+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:11.355806+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:11.355806+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:33:47.349477+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "301684bf9c1c8a4949b23385532428cbeb42e44a8af65cf831bd74db833f58c5", "fetched_at": "2026-08-28T04:08:11.355806+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ysrc/xunfeng"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:11.355806+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:11.355806+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:33:47.349477+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "301684bf9c1c8a4949b23385532428cbeb42e44a8af65cf831bd74db833f58c5", "fetched_at": "2026-08-28T04:08:11.355806+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ysrc/xunfeng"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:11.355806+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:11.355806+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:11.355806+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:33:47.349477+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "301684bf9c1c8a4949b23385532428cbeb42e44a8af65cf831bd74db833f58c5", "fetched_at": "2026-08-28T04:08:11.355806+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ysrc/xunfeng"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:11.355806+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:11.355806+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:33:47.349477+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "301684bf9c1c8a4949b23385532428cbeb42e44a8af65cf831bd74db833f58c5", "fetched_at": "2026-08-28T04:08:11.355806+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ysrc/xunfeng"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:33:47.349477+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "301684bf9c1c8a4949b23385532428cbeb42e44a8af65cf831bd74db833f58c5", "fetched_at": "2026-08-28T04:08:11.355806+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ysrc/xunfeng"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:33:47.349477+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "301684bf9c1c8a4949b23385532428cbeb42e44a8af65cf831bd74db833f58c5", "fetched_at": "2026-08-28T04:08:11.355806+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ysrc/xunfeng"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:33:47.349477+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "301684bf9c1c8a4949b23385532428cbeb42e44a8af65cf831bd74db833f58c5", "fetched_at": "2026-08-28T04:08:11.355806+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ysrc/xunfeng"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3544, "days_push": 869, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}