Usa el siguiente codigo Python para anadir una direccion IP a una interfaz usando el paquete Python RouterOS-api:
add_ip_address.py
def add_ip_address(api, ip, interface):
"""
Anade una direccion IP a una interfaz especificada usando la RouterOS API.
Parametros:
- api (routeros_api.RouterOsApi): La instancia de RouterOS API.
- ip (str): La direccion IP a ser anadida.
- interface (str): La interfaz a la cual la direccion IP sera anadida.
Returns:
- bool: True si la direccion IP fue anadida exitosamente, False si la direccion IP ya existe en la interfaz.
Raises:
- routeros_api.exceptions.RouterOsApiCommunicationError: Si hay un error comunicandose con la 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
# Ejemplo de uso
add_ip_address(api, ip="10.1.2.3/24", interface="bridge")Ejemplo completo
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):
"""
Anade una direccion IP a una interfaz especificada usando la RouterOS API.
Parametros:
- api (routeros_api.RouterOsApi): La instancia de RouterOS API.
- ip (str): La direccion IP a ser anadida.
- interface (str): La interfaz a la cual la direccion IP sera anadida.
Returns:
- bool: True si la direccion IP fue anadida exitosamente, False si la direccion IP ya existe en la interfaz.
Raises:
- routeros_api.exceptions.RouterOsApiCommunicationError: Si hay un error comunicandose con la 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
# Ejemplo de uso
add_ip_address(api, ip="10.1.2.3/24", interface="bridge")
Echa un vistazo a artículos similares por categoría:
MikroTik Networking
Si este artículo te ha ayudado, considera invitarme a un café o hacer una donación vía PayPal para apoyar la investigación y publicación de nuevos artículos en TechOverflow