Python: Subnet and Host Capacity Calculator
#!/usr/bin/env python3
import ipaddress
import sys
def analyze_network(ip_range, new_prefix=None):
try:
network = ipaddress.ip_network(ip_range, strict=False)
except ValueError as e:
print(f"Error: {e}")
return
print(f"\nOriginal Network: {network}")
print(f" Network Address: {network.network_address}")
print(f" Broadcast Address: {network.broadcast_address}")
print(f" Subnet Mask: /{network.prefixlen}")
print(f" Usable Hosts: {network.num_addresses - 2}")
if new_prefix:
new_prefix = int(new_prefix)
if new_prefix > network.prefixlen:
subnets = list(network.subnets(new_prefix=new_prefix))
print(f"\nSubnets with /{new_prefix}: {len(subnets)}")
print(f" Hosts per Subnet: {subnets[0].num_addresses - 2}")
else:
print("\nWarning: New prefix must be larger than the original to create subnets.")
if __name__ == "__main__":
if len(sys.argv) < 2:
print("Usage: python3 ip_analyzer.py <ip_range> [new_prefix]")
sys.exit(1)
ip_range = sys.argv[1]
new_prefix = sys.argv[2] if len(sys.argv) > 2 else None
analyze_network(ip_range, new_prefix)
Explicación línea por línea de ip_analyzer.py
ip_analyzer.pyLast updated