{"adoption": {"forks": 702, "observed_at": "2026-08-28T04:10:39.638452+00:00", "stars": 10139}, "canonical_url": "https://ross.abutalabs.com/products/ipquality", "card": {"archived": false, "artifact_type": "cli-tool", "description": "IP质量检测脚本 - IP Quality Check Script", "domain": ["networking", "security", "developer-tools"], "enriched": true, "function": ["security", "networking", "developer-tools", "analytics"], "health_score": 78, "homepage": null, "language": "Shell", "license": "AGPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["xykt/IPQuality"], "name": "xykt/IPQuality", "platform": ["cli", "cross-platform"], "pushed_at": "2026-08-08T18:26:54+00:00", "repo": "xykt/IPQuality", "stars": 10139, "tags": ["ip-quality", "ip-reputation", "fraud-detection", "streaming-unlock", "blacklist-check", "shell-script", "ipv4", "ipv6", "proxy-detection", "command-line", "linux", "macos", "docker"], "topics": [], "urls": [], "use_cases": ["check if my IP is flagged as risky or a proxy", "test whether Netflix or ChatGPT is unlocked from this server", "check IP against spam and abuse blacklists", "evaluate VPS IP quality before buying", "check IP reputation score from AbuseIPDB and IPQS", "verify mail port connectivity for Gmail and Outlook", "get IP quality report in JSON for automation"], "what_it_is": "A shell-based IP quality check script that reports IP type, risk scores from multiple databases, streaming/AI service unlock status, email port connectivity, and blacklist presence for IPv4/IPv6. It runs via curl-piped bash or Docker on most Linux distributions and macOS, with JSON and plain-text output options.", "when_to_avoid": ["you need programmatic API access from an application rather than a terminal report", "you are on Windows without Docker", "you need continuous monitoring rather than on-demand checks"], "when_to_choose": ["you need a quick one-command IP reputation and unlock report on a Linux server", "you want aggregated risk data from many IP databases in one run", "you need scriptable JSON output for IP checks"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/ipquality", "repo": "xykt/IPQuality", "role": "main", "score": 68}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:10:39.638452+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:19:41.931054+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "18d888351dcb3f824f37c51cbab9c80ea3a396c5f011db58e8dc34b6d8bb2cb2", "fetched_at": "2026-08-28T04:10:39.638452+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xykt/IPQuality"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:10:39.638452+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:19:41.931054+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "18d888351dcb3f824f37c51cbab9c80ea3a396c5f011db58e8dc34b6d8bb2cb2", "fetched_at": "2026-08-28T04:10:39.638452+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xykt/IPQuality"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:19:41.931054+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "18d888351dcb3f824f37c51cbab9c80ea3a396c5f011db58e8dc34b6d8bb2cb2", "fetched_at": "2026-08-28T04:10:39.638452+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xykt/IPQuality"}], "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:10:39.638452+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:10:39.638452+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:10:39.638452+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:19:41.931054+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "18d888351dcb3f824f37c51cbab9c80ea3a396c5f011db58e8dc34b6d8bb2cb2", "fetched_at": "2026-08-28T04:10:39.638452+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xykt/IPQuality"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:10:39.638452+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:10:39.638452+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:19:41.931054+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "18d888351dcb3f824f37c51cbab9c80ea3a396c5f011db58e8dc34b6d8bb2cb2", "fetched_at": "2026-08-28T04:10:39.638452+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xykt/IPQuality"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:10:39.638452+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:10:39.638452+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:10:39.638452+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:19:41.931054+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "18d888351dcb3f824f37c51cbab9c80ea3a396c5f011db58e8dc34b6d8bb2cb2", "fetched_at": "2026-08-28T04:10:39.638452+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xykt/IPQuality"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:10:39.638452+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:10:39.638452+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:19:41.931054+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "18d888351dcb3f824f37c51cbab9c80ea3a396c5f011db58e8dc34b6d8bb2cb2", "fetched_at": "2026-08-28T04:10:39.638452+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xykt/IPQuality"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:19:41.931054+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "18d888351dcb3f824f37c51cbab9c80ea3a396c5f011db58e8dc34b6d8bb2cb2", "fetched_at": "2026-08-28T04:10:39.638452+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xykt/IPQuality"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:19:41.931054+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "18d888351dcb3f824f37c51cbab9c80ea3a396c5f011db58e8dc34b6d8bb2cb2", "fetched_at": "2026-08-28T04:10:39.638452+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xykt/IPQuality"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:19:41.931054+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "18d888351dcb3f824f37c51cbab9c80ea3a396c5f011db58e8dc34b6d8bb2cb2", "fetched_at": "2026-08-28T04:10:39.638452+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xykt/IPQuality"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 96, "longevity": 61, "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": 866, "days_push": 25, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 68, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}