Intern
1. YAML formatında Python obyekti "switches" yazın 2. "switches" üzərində dönüşüm edin ki, yalnız "cisco" keçidlər qalsın 3. standardise_macaddr əmri daxilində, "172.16.0.0/28" şəbəkəsində son host ünvanını əldə edin 4. "dhcp_snooping_table"-ı aşağıdakı formatda sözlüklər siyahısına ayırın: ```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. "NetworkSubnet" adlı sinif yazın, onun 2 metodu olsun: - get_subnet - göstərilən uzunluqdakı ilk mövcud alt şəbəkəni IPv4Network sinfi obyekti kimi qaytarır - show_network_pool - mövcud alt şəbəkələrin siyahısını qaytarır
sobes.tech Süni İntellekt
AI-dan cavab
yaml anahtarlar: cisco1: təchizatçı: cisco model: 2960 ip: 10.0.0.1 cisco2: təchizatçı: cisco model: 3750 ip: 10.0.0.2 hp1: təchizatçı: hp model: 1920 ip: 10.0.0.3
---
# Yalnız cisco anahtarlarını filtrləyin
```python
import yaml
with open('switches.yaml') as f:
switches = yaml.safe_load(f)
cisco_switches = {k: v for k, v in switches['switches'].items() if v['təchizatçı'] == 'cisco'}
172.16.0.0/28 şəbəkəsində son host ünvanını əldə edin
import ipaddress
network = ipaddress.IPv4Network('172.16.0.0/28')
son_host = str(list(network.hosts())[-1])
print(son_host) # 172.16.0.14
dhcp_snooping_table cədvəlini sözlüklər siyahısına ayırın
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
'''
sətirlər = dhcp_snooping_table.strip().split('\n')
dhcp_snooping_table_parsed = []
for sətir in sətirlər:
mac, ip, interface = sətir.split()
dhcp_snooping_table_parsed.append({
'mac': mac,
'ip': ip,
'interface': interface
})
NetworkSubnet sinfi
import ipaddress
class NetworkSubnet:
def __init__(self, şəbəkə):
self.şəbəkə = ipaddress.IPv4Network(şəbəkə)
istifadə olunan_altşəbəkələr = []
def get_subnet(self, prefiks):
for altşəbəkə in self.şəbəkə.subnets(new_prefix=prefiks):
if altşəbəkə not in istifadə olunan_altşəbəkələr:
istifadə olunan_altşəbəkələr.append(altşəbəkə)
return altşəbəkə
return None
def show_network_pool(self):
bütün_altşəbəkələr = list(self.şəbəkə.subnets())
mövcud = [s for s in bütün_altşəbəkələr if s not in istifadə olunan_altşəbəkələr]
return mövcud
# İstifadə nümunəsi
net = NetworkSubnet('192.168.0.0/24')
altşəbəkə = net.get_subnet(28)
print(altşəbəkə) # 192.168.0.0/28
print(net.show_network_pool())