Sobes.tech
Intern

1. Napíšte Python objekt "switches" vo formáte YAML 2. Premenujte "switches" tak, aby zostali iba "cisco" prepínače 3. V príkaze standardise_macaddr získať poslednú adresu hostiteľa v sieti "172.16.0.0/28" 4. Analyzujte "dhcp_snooping_table" na zoznam slovníkov vo formáte: ```python dhcp_snooping_table_parsed = [ { "mac": "00:E9:BC:3F:A6:50", "ip": "100.1.1.6", "interface": "FastEthernet0/20", }, { "mac": "00:E9:22:11:A6:50", "ip": "100.1.1.7", "interface": "FastEthernet0/21", } ] ``` 5. Napíšte triedu "NetworkSubnet", ktorá má 2 metódy: - get_subnet - vráti prvú dostupnú podsieť požadovanej dĺžky ako objekt triedy IPv4Network - show_network_pool - vráti zoznam dostupných podsietí

sobes.tech AI

Odpoveď od AI

yaml prepínače: cisco1: dodávateľ: cisco model: 2960 ip: 10.0.0.1 cisco2: dodávateľ: cisco model: 3750 ip: 10.0.0.2 hp1: dodávateľ: hp model: 1920 ip: 10.0.0.3


---

# Filtrácia iba cisco prepínačov

```python
import yaml

with open('switches.yaml') as f:
    switches = yaml.safe_load(f)

cisco_prepínače = {k: v for k, v in switches['switches'].items() if v['dodávateľ'] == 'cisco'}

Získanie poslednej adresy hostiteľa v sieti 172.16.0.0/28

import ipaddress

network = ipaddress.IPv4Network('172.16.0.0/28')
posledný_host = str(list(network.hosts())[-1])
print(posledný_host)  # 172.16.0.14

Analýza tabuľky dhcp_snooping_table do zoznamu slovníkov

dhcp_snooping_table = '''
00:E9:BC:3F:A6:50 100.1.1.6 FastEthernet0/20
00:E9:22:11:A6:50 100.1.1.7 FastEthernet0/21
'''

riadky = dhcp_snooping_table.strip().split('\n')
dhcp_snooping_table_parsed = []
pre riadok v riadky:
    mac, ip, interface = riadok.split()
    dhcp_snooping_table_parsed.append({
        'mac': mac,
        'ip': ip,
        'interface': interface
    })

Trieda NetworkSubnet

import ipaddress

class NetworkSubnet:
    def __init__(self, sieť):
        self.sieť = ipaddress.IPv4Network(sieť)
        použité_podmreže = []

    def get_subnet(self, prefix):
        for podmreža in self.sieť.subnets(new_prefix=prefix):
            if podmreža not in použité_podmreže:
                použité_podmreže.append(podmreža)
                return podmreža
        return None

    def show_network_pool(self):
        všetky_podmreže = list(self.sieť.subnets())
        dostupné = [s for s in všetky_podmreže if s not in použité_podmreže]
        return dostupné

# Príklad použitia
net = NetworkSubnet('192.168.0.0/24')
podmreža = net.get_subnet(28)
print(podmreža)  # 192.168.0.0/28
print(net.show_network_pool())