IPv6 Address Validation

Summary

Add strict IPv6 address validation.

Current State

IPv6 addresses in brackets are parsed but not validated.

Requirements

  • Validate IPv6 address format
  • Support all IPv6 formats (full, compressed, IPv4-mapped)
  • Validate zone ID format
  • Return specific error for invalid IPv6

Validation Rules

  • 8 groups of 4 hex digits, colon-separated
  • :: compression (only once)
  • IPv4-mapped format (::ffff:192.168.1.1)
  • Zone ID after %25

Acceptance Criteria

  • Accept valid IPv6 addresses
  • Reject malformed addresses with clear errors
  • Tests for edge cases