1
0
Fork 0
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

28 Zeilen
787 B
Python

#!/usr/bin/python3
from sys import argv
from re import search
try:
ip = argv[1]
except Exception as e:
print("Usage: ipcalc.py <IP ADDRESS>")
exit(0)
if not search("^(\d{1,3}\.){3}\d{1,3}$", ip):
print(f"Invalid address {ip}")
exit(0)
ipdec = list(map(int, ip.split(".")))
ipdec[0] = ipdec[0]*256**3
ipdec[1] = ipdec[1]*256**2
ipdec[2] = ipdec[2]*256**1
ipdec[3] = ipdec[3]*256**0
sum0 = sum(ipdec)
p1 = int(ipdec.pop(0)/256**3)
sum1 = sum(ipdec)
p2 = int(ipdec.pop(0)/256**2)
sum2 = sum(ipdec)
w = len(ip)+8
print(f'Address {ip} equals dec {sum0} / {p1}.{sum1} / {p1}.{p2}.{sum2}')
print(f'{" ": <{w}} equals oct 0{sum0:o} / 0{p1:o}.0{sum1:o} / 0{p1:o}.0{p2:o}.0{sum2:o}')
print(f'{" ": <{w}} equals hex {sum0:#x} / {p1:#x}.{sum1:#x} / {p1:#x}.{p2:#x}.{sum2:#x}')