Summary
Add IPv6 address extraction to the entity extractor.
Context
The entity extractor handles IPv4 but not IPv6 addresses. CTI reports increasingly reference IPv6 IOCs (e.g., C2 servers, infrastructure).
- File to edit:
src/zettelforge/entity_indexer.py
- Tests:
tests/test_basic.py::TestEntityExtractor
Acceptance Criteria
Example Input/Output
ext = EntityExtractor()
result = ext.extract_all("C2 server at 2001:db8::1 was observed")
assert "2001:db8::1" in result["ipv6"]
Summary
Add IPv6 address extraction to the entity extractor.
Context
The entity extractor handles IPv4 but not IPv6 addresses. CTI reports increasingly reference IPv6 IOCs (e.g., C2 servers, infrastructure).
src/zettelforge/entity_indexer.pytests/test_basic.py::TestEntityExtractorAcceptance Criteria
ipv6toREGEX_PATTERNSinentity_indexer.py2001:0db8:85a3::8a2e:0370:7334), compressed (::1,fe80::1), and mixed (::ffff:192.168.1.1)ipv6toENTITY_TYPES2001:0db8:85a3:0000:0000:8a2e:0370:7334fe80::1::1a1b2c3d4e5f6...should not matchpytest tests/test_basic.py -vExample Input/Output