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
--fromflag 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
| Flag | Description |
|---|---|
-f, --format | Content format(s): dotted, hex, hex_dotted, integer, binary, octal, expanded, compressed, mixed, class, special |
-o, --output | Output serialization: plain (default), json, yaml, xml |
--pretty | Pretty-print JSON/XML |
-h, --help | Show help |
-v, --version | Show version |
Development
# Run tests
make test
# Or directly
crystal spec
# Build binary
make
# Lint
bin/ameba
bin/flaw scan src/
License
MIT — see LICENSE