MikroTik
How to Configure JSON API on MikroTik: Step by Step
A JSON API no Mikrotik é uma interface que permite a comunicação com o roteador usando o formato JSON. Ela é amplamente utilizada para integrar o Mikrotik a sistemas externos, como ferramentas de monitoramento ou automação, proporcionando uma maneira eficiente de gerenciar e monitorar o dispositivo remotamente.
Step-by-Step Guide to Configure JSON API on MikroTik
1. Access the MikroTik
- Conecte-se ao roteador via WinBox, SSH, ou interface Web.
2. Enable the API Service
- Certifique-se de que o serviço API está ativo no roteador. Use o comando:
RouterOS
/ip service enable api - Por padrão, o serviço API utiliza a porta 8728. Para habilitar a versão segura (SSL):
RouterOS
/ip service enable api-ssl
3. Adjust the API Service Port (optional)
- Caso queira alterar a porta padrão para evitar conflitos ou melhorar a segurança:
RouterOS
/ip service set api port=8080
4. Configure the Firewall for the API Service
- Garanta que o acesso ao serviço API seja permitido apenas para IPs confiáveis:
RouterOS
/ip firewall filter add chain=input protocol=tcp dst-port=8728 src-address=192.168.1.0/24 action=accept comment="Permitir acesso API" /ip firewall filter add chain=input protocol=tcp dst-port=8728 action=drop comment="Bloquear outros acessos API"
5. Test API Access
- Use uma ferramenta de requisições, como Postman ou cURL, para enviar comandos ao Mikrotik.
- Example cURL command: curl -u admin:password -X POST http://192.168.1.1:8728/jsonrpc -d '{"id":1, "method":"/ip/address/print"}'
6. Integrate MikroTik with External Systems
- Utilize bibliotecas compatíveis com JSON API, como RouterOS API for PHP ou scripts personalizados em Python: import requests url = "<a target="_new" rel="noopener">http://192.168.1.1:8728/jsonrpc</a>" payload = {"id": 1, "method": "/ip/address/print"} response = requests.post(url, json=payload, auth=('admin', 'senha')) print(response.json())
7. Enable Logs to Monitor the API Service (optional)
- Ative logs específicos para acompanhar o uso da API:
RouterOS
/system logging add topics=api action=memory