A comprehensive utility to calculate IPv4 and IPv6 network information with support for multiple input formats and detailed output including hexadecimal representations and subnet possibilities.
- IPv4 Support: Calculate network information for IPv4 addresses
- IPv6 Support: Full IPv6 network calculation support
- Multiple Input Formats:
- CIDR notation (192.168.1.0/24, 2001:db8::/32)
- Decimal netmask (192.168.1.0/255.255.255.0)
- IPv6 compressed format (::1, ::ffff:192.168.1.1)
- Comprehensive Output:
- Network, broadcast, and host range information
- Hexadecimal and binary representations (IPv4)
- Possible subnet divisions
- Network class information (IPv4)
- Multiple Usage Options: Command-line script, Python module, or
python -mexecution
pip install pyipcalcFor development:
git clone https://github.com/fxyzbtc/pyipcalc.git
cd pyipcalc
uv install# IPv4 with CIDR notation
pyipcalc 192.168.1.0/24
# IPv4 with decimal netmask
pyipcalc 192.168.1.0/255.255.255.0
# IPv6 network
pyipcalc 2001:db8::/32
# With verbose output
pyipcalc -v 10.0.0.0/8
# Quiet mode (results only)
pyipcalc -q 172.16.0.0/12python -m pyipcalc 192.168.1.0/24from pyipcalc import IPCalculator, DisplayFormatter
# Calculate network information
result = IPCalculator.calculate("192.168.1.0/24")
# Display formatted output
print(DisplayFormatter.format_output(result))
# Access specific information
print(f"Network: {result.network}")
print(f"Usable hosts: {result.usable_hosts}")
print(f"Hexadecimal: {result.network_hex}")=== IPv4 Network Information ===
Network: 192.168.1.0/24
Netmask: 255.255.255.0
Wildcard: 0.0.0.255
Broadcast: 192.168.1.255
Network Class: C
=== Host Range ===
First Host: 192.168.1.1
Last Host: 192.168.1.254
Total Hosts: 256
Usable Hosts: 254
=== Hexadecimal Format ===
Network (Hex): C0.A8.01.00
Netmask (Hex): FF.FF.FF.00
Broadcast (Hex): C0.A8.01.FF
First Host (Hex): C0.A8.01.01
Last Host (Hex): C0.A8.01.FE
=== Binary Format ===
Network (Binary): 11000000.10101000.00000001.00000000
Netmask (Binary): 11111111.11111111.11111111.00000000
=== Possible Subnet Divisions ===
/25 (2 subnets)
/26 (4 subnets)
/27 (8 subnets)
/28 (16 subnets)
/29 (32 subnets)
/30 (64 subnets)
=== IPv6 Network Information ===
Network: 2001:db8::/32
Prefix Length: /32
=== Address Formats ===
Compressed: 2001:db8::
Expanded: 2001:0db8:0000:0000:0000:0000:0000:0000
Hexadecimal: 20010db8000000000000000000000000
=== Host Range ===
First Host: 2001:db8::
Last Host: 2001:db8:ffff:ffff:ffff:ffff:ffff:ffff
Total Hosts: 79,228,162,514,264,337,593,543,950,336
=== Possible Subnet Divisions ===
/48 (65536 subnets)
/56 (16777216 subnets)
/60 (268435456 subnets)
/64 (4294967296 subnets)
- IPv4 CIDR:
192.168.1.0/24 - IPv4 with decimal netmask:
192.168.1.0/255.255.255.0 - IPv6 CIDR:
2001:db8::/32 - IPv6 compressed:
::1/128,::ffff:192.168.1.1/96 - Single IP addresses: Automatically assumes
/32for IPv4 and/128for IPv6
git clone https://github.com/fxyzbtc/pyipcalc.git
cd pyipcalc
uv venv
uv installuv run pytestThis project uses ruff for code formatting and linting:
uv run ruff check
uv run ruff format- Multiple Format Support: No need to convert between different IP notation formats
- Comprehensive Information: Get all network details in one command
- Hexadecimal Output: Essential for network programming and debugging
- Subnet Planning: See possible subnet divisions at a glance
- Cross-Platform: Works on Windows, macOS, and Linux
- Multiple Interfaces: Use as CLI tool, Python module, or import in code
- Homepage: https://github.com/fxyzbtc/pyipcalc
- Documentation: https://deepwiki.com/fxyzbtc/pyipcalc
- Issues: https://github.com/fxyzbtc/pyipcalc/issues
- PyPI: https://pypi.org/project/pyipcalc/
This project is licensed under the MIT License.
Contributions are welcome! Please feel free to submit a Pull Request.