RouterOS API arayüzünü birçok projemizde kullanıyoruz. RouterOS 6.43 ve 6.45.1 sürümlerinde API girişinde yapılan değişikliklerden ve Python ile kullandığımız API kütüphanesinden bahsedeceğim.

API login sisteminde RouterOS 6.43 sürümünden önce şifre hashlenerek gönderildiğinden API arayüzünü SSL'siz kullansanız bile şifreniz korunmakta idi. 6.43 sürümünde yapılan değişiklik ile API login sistemi değişti. 6.45.1 sürümü ile de eski login sistemi tamamen kaldırıldı. 6.45.1 geçişinden sonra eski login sistemi ile çalışan kütüphaneler ve programlar API üzerinden giriş yapamamaya başladı.

MikroTik wiki.mikrotik.com üzerinden bu konu ile ilgili güncellemeleri yaptı.

https://wiki.mikrotik.com/wiki/Manual:API#Initial_login

Sekuritim olarak RouterOS kullanan API programlarımızı Python ile yazıyoruz. Kullandığımız kütüphane ise RouterOS-API https://github.com/socialwifi/RouterOS-api

Bu kütüphanede gerekli düzenlemeler yapıldı. Python2 ile kullanıldığında problem yok. Tek yapılması gereken router bağlantısı yapılırken plaintext_login seçeneğini kullanmak.

routeros_api.RouterOsApiPool(host, username='admin', password='', port=8728, use_ssl=False, ssl_verify=True, ssl_verify_hostname=True, ssl_context=None, plaintext_login=True)

Ancak, kütüphaneyi Python3 ile kullanmaya çalıştığınızda problem yaşanmakta. Bunun için github üzerinde kütüphaneyi klonlayarak hatalarını düzelttik. Bu kütüphaneyi Python3 ile kullanmak isterseniz klonladığımız repodan kullanabilirsiniz.

https://github.com/okazdal/RouterOS-api

Repoyu klonladıktan sonra kurmak için reponun dizininde:

python setup.py build
python setup.py install

komutlarını kullanabilirsiniz.

Kütüphanenin kullanımı ile ilgili örnekleri aşağıdaki adreste bulabilirsiniz:

https://github.com/socialwifi/RouterOS-api/wiki/How-to-use

İleri tarihli yazılarımızda RouterOS API ile Python örnekleri bol bol olacaktır.