From 681af9383ebbe1aab2f86d3af2a2801c383a1208 Mon Sep 17 00:00:00 2001 From: mosers Date: Thu, 12 Sep 2019 14:37:03 +0200 Subject: [PATCH] =?UTF-8?q?=E2=80=9Eipcalc.py=E2=80=9C=20hinzuf=C3=BCgen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ipcalc.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 ipcalc.py diff --git a/ipcalc.py b/ipcalc.py new file mode 100644 index 0000000..e842903 --- /dev/null +++ b/ipcalc.py @@ -0,0 +1,27 @@ +#!/usr/bin/python3 + +from sys import argv +from re import search + +try: + ip = argv[1] +except Exception as e: + print("Usage: ipcalc.py ") + 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:0}.0{sum2:o}') +print(f'{" ": <{w}} equals hex {sum0:#x} / {p1:#x}.{sum1:#x} / {p1:#x}.{p2:#x}.{sum2:#x}')