{"adoption": {"forks": 487, "observed_at": "2026-08-28T04:07:05.596151+00:00", "stars": 2630}, "canonical_url": "https://ross.abutalabs.com/products/lanspy", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Inject code and spy on wifi users", "domain": ["penetration-testing", "security", "networking"], "enriched": true, "function": ["penetration-testing", "networking", "security"], "health_score": 20, "homepage": null, "language": "Python", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "abandoned", "member_repos": ["DanMcInerney/LANs.py"], "name": "DanMcInerney/LANs.py", "platform": ["cli", "python"], "pushed_at": "2021-07-31T21:33:37+00:00", "repo": "DanMcInerney/LANs.py", "stars": 2630, "tags": ["arp-spoofing", "mitm", "wifi", "packet-capture", "traffic-injection", "deauth-jamming", "kali-linux", "linux"], "topics": [], "urls": [], "use_cases": ["spy on wifi users on a local network", "inject html or javascript into pages a target visits", "capture plaintext credentials from http ftp imap pop3 and irc traffic", "identify the most active clients on a wlan", "jam nearby wifi networks or a single client", "perform targeted arp spoofing without affecting other hosts"], "what_it_is": "A Python-based penetration testing tool that scans WiFi networks for active clients, performs targeted ARP spoofing, and intercepts or injects traffic (HTTP, FTP, IMAP, POP3, IRC). It can also continuously jam nearby WiFi networks via deauthentication.", "when_to_avoid": ["you need a maintained MITM tool - the author recommends bettercap instead", "you need HTTPS interception or modern protocol support", "you want to run it on Windows or macOS - it requires Linux with specific dependencies", "you need to jam WiFi and spy at the same time - it cannot do both"], "when_to_choose": ["you need a simple targeted ARP spoofer with traffic harvesting on a Linux pentest box", "you want to demo WiFi MITM risks on an authorized network", "you need WiFi deauthentication/jamming from a script"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/lanspy", "repo": "DanMcInerney/LANs.py", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:05.596151+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:19:37.660213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1e900e53bb8e0f0ab322d702f6ba3faec942eb28a6dab8db05820bb8076eb3a1", "fetched_at": "2026-08-28T04:07:05.596151+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DanMcInerney/LANs.py"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:05.596151+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:19:37.660213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1e900e53bb8e0f0ab322d702f6ba3faec942eb28a6dab8db05820bb8076eb3a1", "fetched_at": "2026-08-28T04:07:05.596151+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DanMcInerney/LANs.py"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:19:37.660213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1e900e53bb8e0f0ab322d702f6ba3faec942eb28a6dab8db05820bb8076eb3a1", "fetched_at": "2026-08-28T04:07:05.596151+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DanMcInerney/LANs.py"}], "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:07:05.596151+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:05.596151+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:05.596151+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:19:37.660213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1e900e53bb8e0f0ab322d702f6ba3faec942eb28a6dab8db05820bb8076eb3a1", "fetched_at": "2026-08-28T04:07:05.596151+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DanMcInerney/LANs.py"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:05.596151+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:05.596151+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:19:37.660213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1e900e53bb8e0f0ab322d702f6ba3faec942eb28a6dab8db05820bb8076eb3a1", "fetched_at": "2026-08-28T04:07:05.596151+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DanMcInerney/LANs.py"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:05.596151+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:05.596151+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:05.596151+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:19:37.660213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1e900e53bb8e0f0ab322d702f6ba3faec942eb28a6dab8db05820bb8076eb3a1", "fetched_at": "2026-08-28T04:07:05.596151+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DanMcInerney/LANs.py"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:05.596151+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:05.596151+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:19:37.660213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1e900e53bb8e0f0ab322d702f6ba3faec942eb28a6dab8db05820bb8076eb3a1", "fetched_at": "2026-08-28T04:07:05.596151+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DanMcInerney/LANs.py"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:19:37.660213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1e900e53bb8e0f0ab322d702f6ba3faec942eb28a6dab8db05820bb8076eb3a1", "fetched_at": "2026-08-28T04:07:05.596151+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DanMcInerney/LANs.py"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:19:37.660213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1e900e53bb8e0f0ab322d702f6ba3faec942eb28a6dab8db05820bb8076eb3a1", "fetched_at": "2026-08-28T04:07:05.596151+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DanMcInerney/LANs.py"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:19:37.660213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1e900e53bb8e0f0ab322d702f6ba3faec942eb28a6dab8db05820bb8076eb3a1", "fetched_at": "2026-08-28T04:07:05.596151+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DanMcInerney/LANs.py"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "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": 4990, "days_push": 1859, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}