ioc-fanger
Python package to defang and fang indicators of compromise from text.
Decision gist · record as of 2026-08-14
Yes. Active maintenance, no known vulnerabilities, permissive MIT license, and low install friction make it a safe choice. The package solves a real, recurring problem in threat intelligence workflows. Use it when you need to reliably convert between defanged and normal IOC forms.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later.
- Low friction: pure Python wheel with a single runtime dependency (click).
- Active maintenance—last commit 2026-08-11, 58 days since latest release.
License · maintenance · safety
MIT (permissive) — MIT license (permissive). No restrictions on use, modification, or redistribution in commercial or proprietary projects.
last release 2026-06-17 (58 days) · last repo commit 2026-08-11 · 68 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 113,267 downloads/mo, #12,348 on PyPI
Alternatives
Verify before relying
pip install ioc-fanger
from ioc_fanger import fang, defang
defanged = defang('example.com')
restored = fang('example[.]com')- Whether the package is suitable for real-time processing of large IOC batches or primarily for ad-hoc text transformation.
- Performance characteristics when processing complex multi-pattern defanged strings (e.g., mixed escaping styles).
What it is and what it does
IOC Fanger is a Python library that bidirectionally transforms indicators of compromise (IOCs) between defanged and normal forms. Defanging is a common practice in threat intelligence to prevent accidental execution or lookup of malicious URLs, domains, and email addresses—replacing dots with `[.]`, colons with `[:]`, and using obfuscated URL schemes like `hXXp://`. This package reverses those transformations (fanging) and also applies them (defanging) using a conservative, unambiguous set of substitutions.
The library recognizes a wide range of defanging patterns: brackets, parentheses, and braces around special characters; literal words like `DOT` or `punto` substituted for dots; escaped characters; IPv4 addresses with commas; and malformed URL schemes. It combines these patterns, so complex inputs like `hXXp://bad[.]example[dot]com/file[.]php` are fully restored in a single call. The defang function applies the reverse—replacing dots between word characters with `[.]`, URL schemes with obfuscated variants, and `@` symbols with `(at)`—ensuring output that can be reliably re-fanged.
Use it for
- Restore defanged IOCs from threat reports, security blogs, or social media posts for automated lookup and enrichment.
- Defang URLs and domains before sharing them in emails, Slack, or documentation to prevent accidental clicks.
- Normalize IOC formats in threat intelligence feeds or SIEM ingestion pipelines.
- Parse mixed defanged and normal IOCs from unstructured security alerts or incident notes.
- Build threat-hunting tools that accept user-pasted IOCs in either form and convert them for database queries.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
Active maintenance, no known vulnerabilities, permissive MIT license, and low install friction make it a safe choice. The package solves a real, recurring problem in threat intelligence workflows. Use it when you need to reliably convert between defanged and normal IOC forms.
Install
ioc-fanger on PyPI
Before you install
Low friction: pure Python wheel with a single runtime dependency (click). Active maintenance—last commit 2026-08-11, 58 days since latest release. Supports Python 3.10 through 3.14.
Requires Python 3.10 or later.
License in practice
MIT license (permissive). No restrictions on use, modification, or redistribution in commercial or proprietary projects.
Quickstart
pip install ioc-fanger
from ioc_fanger import fang, defang
defanged = defang('example.com')
restored = fang('example[.]com')
Verify before relying
- Whether the package is suitable for real-time processing of large IOC batches or primarily for ad-hoc text transformation.
- Performance characteristics when processing complex multi-pattern defanged strings (e.g., mixed escaping styles).
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 1 packageclick |
| Maintenance | Actively maintained 58 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 113,267 / month, #12,348 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseNatural Language :: EnglishProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14 |
Evidence: ioc_fanger-5.1.1-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “defang refang IOC indicators of compromise”
- ioc-fangerConverts defanged indicators of compromise (IOCs) like…
- OTXv2OTXv2 is a Python client for AlienVault's Open Threat Exchange API,…
- secopsA Python SDK for interacting with Google Security Operations…
Give your agent the search over MCP, or paste the wish link into any chat.
More Security packages
Provides Python bindings to the FreeDesktop.org Secret Service API for securely storing and retrieving passwords and secrets through GNOME Keyring, KWallet, or KeePassXC.
MSAL for Python handles OAuth2 and OpenID Connect authentication with Microsoft identity services, managing token acquisition, caching, and refresh for applications integrating with Microsoft Entra ID, Microsoft Accounts, and Azure AD B2C.
joserfc implements JOSE standards (JWS, JWE, JWK, JWT, and related RFCs) for signing, encrypting, and managing JSON-based cryptographic tokens in Python.
Authlib provides a complete implementation of OAuth 1.0, OAuth 2.0, and OpenID Connect 1.0 for building both authentication clients and servers, with built-in support for JWS, JWK, JWA, and JWT standards.
Provides low-level CFFI bindings to the official Argon2 password hashing algorithm for use by libraries and applications that need direct access to Argon2 without higher-level abstractions.
ADAL for Python authenticates applications with Azure Active Directory to obtain tokens for accessing Azure AD-protected resources.
Install only if maintaining existing code that already depends on it, and plan a migration.
See also OTXv2 · threatwire · publicsuffixlist · urlcanon · publicsuffix2 · flake8-picky-parentheses · ada-url · androguard · anyascii · url-normalize