Пакетное заполнение address-list в mikrotik

Сам json возьмем тут. Скрипт разделен на две части: Во-первых, получаем json по ссылке, парсим его, чистые данные записываем в список, во-вторых, подключаемся к нашему микротику по ssh и далее в цикле выполняем /ip firewall address-list add address=<ip> list=<list-name>.

#! /usr/bin/python3

from paramiko import SSHClient
from paramiko import AutoAddPolicy

import json
import requests
from getpass import getpass

ipssh = ""
login = "admin"
passw = "st"

url = "http://api.voximplant.com/getMediaResources?with_webgateways&with_mediaservers&with_jsservers&with_sbcs"
response = requests.get(url)
data = response.json()
#print (data)

js_servers = data["js_servers"]
media_servers = data["media_servers"]
web_gateways = data["web_gateways"]
ip = []

for i in range(0, len(js_servers)):
    ip.append(js_servers[i]["address"])

for i in range(0, len(media_servers)):
    ip.append(media_servers[i]["hostname"])

for i in range(0, len(web_gateways)):
    ip.append(web_gateways[i]["hostname"])


ssh = SSHClient()
ssh.set_missing_host_key_policy(AutoAddPolicy())
ssh.connect(ipssh,port=22,username=login,password=passw)
for i in range(0, len(ip)):
    cmd = "/ip firewall address-list add address="+ip[i]+ " list=bitix_voximplant_ip"
    ssh.exec_command(cmd)

ssh.close()

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *