New Page

""" 

 Praktijkleren Examenopdracht – Python 

 Onderwerp: Subnetcalculator 

 Auteur: <jouw naam> 

 Datum: <datum> 

 

 Dit script automatiseert het berekenen van netwerkgegevens 

 op basis van een IP-adres en subnetmasker. 

 """ 

 

 def vraag_ip_adres(): 

 

 """ 

 

 Vraagt maximaal 3 keer om een geldig IPv4-adres. 

 

 """ 

 

 pogingen = 0 

 

 

 while pogingen < 3: 

 

 ip = input("Voer een IP-adres in (bijv. 192.168.1.10): ") 

 

 delen = ip.split(".") 

 

 

 if len(delen) == 4 and all(d.isdigit() and 0 <= int(d) <= 255 for d in delen): 

 

 return ip 

 

 else: 

 

 pogingen += 1 

 

 print(f"Ongeldig IP-adres. Poging {pogingen} van 3.") 

 

 

 print("Te veel foutieve pogingen.") 

 

 return None 

 

 def vraag_subnetmasker(): 

 

 """ 

 

 Vraagt een subnetmasker in CIDR-notatie. 

 

 """ 

 

 masker = input("Voer subnetmasker in (CIDR, bijv. 24): ") 

 

 

 if masker.isdigit() and 0 <= int(masker) <= 32: 

 

 return int(masker) 

 

 else: 

 

 print("Ongeldig subnetmasker.") 

 

 return None 

 

 def bereken_hosts(cidr): 

 

 """ 

 

 Berekent het aantal hosts op basis van CIDR. 

 

 """ 

 

 host_bits = 32 - cidr 

 

 hosts = (2 ** host_bits) - 2 

 

 return hosts 

 

 def main(): 

 

 """ 

 

 Hoofdprogramma 

 

 """ 

 

 ip = vraag_ip_adres() 

 

 if ip is None: 

 

 return 

 

 

 cidr = vraag_subnetmasker() 

 

 if cidr is None: 

 

 return 

 

 

 hosts = bereken_hosts(cidr) 

 

 

 print("\nResultaat:") 

 

 print("IP-adres:", ip) 

 

 print("Subnetmasker: /" + str(cidr)) 

 

 print("Aantal mogelijke hosts:", hosts) 

 

 main()