Hello everyone
In this task I had to create simple IP / subnet calculator in Python. I'm just wondering how you see this problem.
There is my code:
def toBinary(integer):
binary = ['{0:0>8}'.format(bin(int(x))[2:]) for x in integer.split(".")]
return binary
def ip_information(ip, mask):
binary_ip = toBinary(ip)
binary_mask = toBinary(mask)
network_ip = ["", "", "", ""]
broadcast_address = ["", "", "", ""]
number_of_hosts = 1
for x in range(4):
for y in range(8):
network_ip[x] += str(int(int(binary_ip[x][y]) and int(binary_mask[x][y])))
broadcast_address[x] += str(int(not int(binary_mask[x][y])))
if binary_mask[x][y] == '0':
number_of_hosts *= 2
network_ip[x] = int(network_ip[x], 2)
broadcast_address[x] = int(broadcast_address[x], 2) + network_ip[x]
return f"""
Network IP: {".".join(str(x) for x in network_ip)}
Broadcast address: {".".join(str(x) for x in broadcast_address)}
Number of hosts: {number_of_hosts - 2}
"""
Output:
Network IP: 192.168.0.0
Broadcast address: 192.168.0.255
Number of hosts: 254
Any tips how to make this better, closer to a advanced (but still, can take under account to make it simple) or just better solution will be definitely on point. Thanks in advance!
using Python 3.10
Enjoy your coffee, and your wednesday!