Як додати IP-адресу до інтерфейсу за допомогою Python RouterOS-api

Використовуйте наступний код Python, щоб додати IP-адресу до інтерфейсу за допомогою пакета Python RouterOS-api:

add_ip_address.py

def add_ip_address(api, ip, interface):
    """
    Додає IP-адресу до вказаного інтерфейсу за допомогою RouterOS API.

    Параметри:
    - api (routeros_api.RouterOsApi): Екземпляр RouterOS API.
    - ip (str): IP-адреса, яку потрібно додати.
    - interface (str): Інтерфейс, до якого буде додано IP-адресу.

    Повертає:
    - bool: True, якщо IP-адресу було успішно додано, False, якщо IP-адреса вже існує на інтерфейсі.

    Викликає:
    - routeros_api.exceptions.RouterOsApiCommunicationError: Якщо виникає помилка зв'язку з RouterOS API.
    """
    try:
        ip_resource = api.get_resource('/ip/address')
        ip_resource.add(interface=interface, address=ip)
        return True
    except routeros_api.exceptions.RouterOsApiCommunicationError as e:
        error_message = str(e)
        if 'already have such address' in error_message:
            return False
        else:
            raise e

# Приклад використання
add_ip_address(api, ip="10.1.2.3/24", interface="bridge")

Повний приклад

add_ip_address_full.py
#!/usr/bin/env python3
import routeros_api

connection = routeros_api.RouterOsApiPool(
    '192.168.88.1', username='admin', password='L9TYAUV7R8',
    plaintext_login=True
)
api = connection.get_api()


def add_ip_address(api, ip, interface):
    """
    Додає IP-адресу до вказаного інтерфейсу за допомогою RouterOS API.

    Параметри:
    - api (routeros_api.RouterOsApi): Екземпляр RouterOS API.
    - ip (str): IP-адреса, яку потрібно додати.
    - interface (str): Інтерфейс, до якого буде додано IP-адресу.

    Повертає:
    - bool: True, якщо IP-адресу було успішно додано, False, якщо IP-адреса вже існує на інтерфейсі.

    Викликає:
    - routeros_api.exceptions.RouterOsApiCommunicationError: Якщо виникає помилка зв'язку з RouterOS API.
    """
    try:
        ip_resource = api.get_resource('/ip/address')
        ip_resource.add(interface=interface, address=ip)
        return True
    except routeros_api.exceptions.RouterOsApiCommunicationError as e:
        error_message = str(e)
        if 'already have such address' in error_message:
            return False
        else:
            raise e

# Приклад використання
add_ip_address(api, ip="10.1.2.3/24", interface="bridge")

Дивіться схожі статті за категоріями: MikroTik Networking