IPs-LE
Extract every IP address, CIDR block and MAC, normalized and classified by scope
No editor in the loop? npx -y ips-le-mcp runs the same engine as an MCP server, so an agent can call extract_ips with nothing else installed, and cargo install ips-le puts the same check in a terminal. Every way to install it.
Overview
What IPs-LE does
A regex over dotted quads finds no IPv6 at all, calls 1.2.3 an address, and reports 2001:0db8::0001 and 2001:db8::1 as two different things when they are one. IPs-LE finds every IP address, CIDR block and MAC address in a tree, normalizes IPv6 per RFC 5952, and says what each one is: loopback, private, link-local, cgnat, multicast, broadcast, reserved, documentation, unique-local or global. The scan runs over the bytes of every file, so an address inside a connection string or a rotated log is found too. It never resolves a name, never geolocates and never opens a socket.
What people use it for
Audit an allow-list
Filter to private and loopback and see what a config makes reachable that the change request never mentioned.
Surface an SSRF bypass
A leading-zero octet is octal to some resolvers and decimal to others, so 010.1.1.1 is refused by name rather than resolved to either.
Make a diff stop lying
Four spellings of one IPv6 address sort as four entries in raw text and as one after normalization.
Palette
5 commands
Open the command palette and type the name. Nothing is bound to a shortcut by default — the editor's keymap is the user's, not ours.
ips-le.showPositions: Show the line and column of each address. On by default.
- Extract Addresses
ips-le.extract - Scan Workspace for Addresses
ips-le.scanWorkspace - Scan Folder for Addresses
ips-le.scanFolder - Open Settings
ips-le.openSettings - Help & Troubleshooting
ips-le.help
Install
Install IPs-LE
VS Code
ext install nolindnaidoo.ips-leOpen Quick Open (Cmd/Ctrl+P) and paste.
Cursor / Windsurf
cursor --install-extension nolindnaidoo.ips-leCursor, Windsurf, VSCodium and the other VS Code forks pull from Open VSX. The id is the same as on the Marketplace.
AI agents
npx -y ips-le-mcpRuns IPs-LE's engine as an MCP server, so an agent can call extract_ips with no editor involved. VS Code 1.101+ needs nothing — the extension registers it for you.
Channels
Where it ships
One engine, 5 places to get it. Copy the one for the editor you use.
Links
Where IPs-LE lives
- VS Code Marketplaceips-le
- Open VSXfor Cursor, Windsurf and VSCodium
- npmips-le-mcp
- GitHubsource, issues, changelog
- MCP registryio.github.nolindnaidoo/ips-le
The family
The other 16
String-LEExtract every string in a codebase, so a person can read them
Numbers-LEExtract every hardcoded number in a codebase, so a person can check them
Paths-LEExtract every file path in a codebase, and say whether it still points at anything
Colors-LEExtract every color in a codebase, and say which ones are not in your palette
URLs-LEExtract every URL in a codebase, with its protocol and exact position
Dates-LEExtract every date and timestamp, and the exact instant each one resolves to
Units-LEExtract every quantity with its unit, normalized, and refuse the ambiguous ones by name
IDs-LEExtract every UUID, ULID, NanoID, ObjectId and Snowflake, and decode the time inside
Regex-LEFind every regex in a codebase, and report which can be driven into catastrophic backtracking
Scrape-LECheck whether a page is scrapeable before the scraper is written, and say when it cannot tell
Versions-LEFind where one dependency is constrained differently across a repository's manifests
i18n-LEIdentify the i18n library a project uses, then audit its catalogs by that library's rules
DecisionLintLint Jev and Luna questions before they are sent: the questions you write for TypeSafe's Jev, OpenAI's Decisions API (gpt-6-luna) or any platform that serves one, as you type, with no API key and no network calls. An optional command asks the model itself to check a file
Secrets-LEFind hardcoded credentials in a codebase, and never print one into the report
EnvSync-LECompare the dotenv files in a tree, and say which keys are missing from which
Unicode-LEFind the Unicode that hides meaning — bidi controls, invisibles, homoglyphs, mixed scripts
