package

gitlab.com/renich/ipconv

0.3.0 / published May 19, 2026 / repository

IP address converter CLI. Parse, convert, validate, and classify IPv4 and IPv6 addresses.

ipconv

IP address converter CLI — parse, convert, validate, and classify IPv4 and IPv6 addresses.

Features

  • Input auto-detection: Dotted decimal, hex, decimal integer, binary dotted, octal dotted
  • IPv6 support: Expanded, compressed, mixed (IPv4-mapped) notation
  • 6 IPv4 output formats: dotted, hex, hex_dotted, integer, binary, octal
  • 3 IPv6 output formats: expanded, compressed, mixed (IPv4-mapped)
  • 4 serializers: plain (key:value), JSON, YAML, XML
  • Classification: IP class (A–E), 13+ special-purpose ranges per version
  • Auto-detection: Input format is auto-detected — no --from flag needed

Installation

# Build from source
crystal build src/main.cr -o ipconv --release

# Or via make
make

Usage

# Display all formats for an IPv4 address
ipconv 192.168.1.1

# Display a single format
ipconv -f hex 192.168.1.1

# Multiple formats
ipconv -f dotted,hex,integer 192.168.1.1

# JSON output
ipconv -o json 192.168.1.1

# YAML output
ipconv -o yaml 192.168.1.1

# XML output
ipconv -o xml 192.168.1.1

# Pretty-print JSON
ipconv -o json --pretty 192.168.1.1

# IPv6
ipconv 2001:db8::1
ipconv ::ffff:192.168.1.1

Options

FlagDescription
-f, --formatContent format(s): dotted, hex, hex_dotted, integer, binary, octal, expanded, compressed, mixed, class, special
-o, --outputOutput serialization: plain (default), json, yaml, xml
--prettyPretty-print JSON/XML
-h, --helpShow help
-v, --versionShow version

Development

# Run tests
make test

# Or directly
crystal spec

# Build binary
make

# Lint
bin/ameba
bin/flaw scan src/

License

MIT — see LICENSE

API