Please check if its help full:
import random
class IPClass:
def __init__(self, ip):
self.ip = ip
def Print(self):
print(f"IP Address: {self.ip}")
class A(IPClass):
def __init__(self, ip):
super().__init__(ip)
def Print(self):
print(f"Class A IP Address: {self.ip}")
class B(IPClass):
def __init__(self, ip):
super().__init__(ip)
def Print(self):
print(f"Class B IP Address: {self.ip}")
class C(IPClass):
def __init__(self, ip):
super().__init__(ip)
def Print(self):
print(f"Class C IP Address: {self.ip}")
class D(IPClass):
def __init__(self, ip):
super().__init__(ip)
def Print(self):
print(f"Class D IP Address: {self.ip}")
class E(IPClass):
def __init__(self, ip):
super().__init__(ip)
def Print(self):
print(f"Class E IP Address: {self.ip}")
def create_random_IP():
return f"{random.randint(0, 255)}.{random.randint(0, 255)}.{random.randint(0, 255)}.{random.randint(0, 255)}"
def main():
global ip_List
ip_List = []
stud_name = "Your Name"
stud_id = "Your ID"
print("wrtitten by: {0} ID: {1}\n".format(stud_name, stud_id)) #do not change
ip_addresses = [
"8.8.8.8",
"132.216.177.160",
"192.168.0.1",
"205.211.140.132",
"127.0.0.1"
]
def classify_ip(ip):
first_octet = int(ip.split('.')[0])
if 0 <= first_octet <= 127:
return A(ip)
elif 128 <= first_octet <= 191:
return B(ip)
elif 192 <= first_octet <= 223:
return C(ip)
elif 224 <= first_octet <= 239:
return D(ip)
else:
return E(ip)
for ip in ip_addresses:
ip_class = classify_ip(ip)
ip_List.append(ip_class)
random_ip = create_random_IP()
ip_List.append(classify_ip(random_ip))
for obj in ip_List:
obj.Print()
if __name__ == "__main__":
main()