Имеется простейшая консольная программка на c#, которая стучится на MikroTik через API.
До этого у меня было реализовано подобное, только писалось все в visual studio 2010 и версия router os была 6.43 и ниже(смену типа авторизации застал и поборол).
Теперь возникла проблема - "login failure for user мой_юзер from мой_ip via api". IP service настроены корректно, юзер и пароль проверены вдаль и поперек. IP=>firewall залочил все правила. В общем стандартные методы "а не дурак ли я" проверены. Класс API взят свежий с wiki.mikrotik. Версия Router OS 6.48.4, MikroTik RB1100.
Вот метод авторизации класса:
public bool Login(string username, string password)
{
Send("/login", true);
string hash = Read()[0].Split(new string[] { "ret=" }, StringSplitOptions.None)[1];
Send("/login");
Send("=name=" + username);
Send("=response=00" + EncodePassword(password, hash), true);
if (Read()[0] == "!done")
{
return true;
}
else
{
return false;
}
}
P.S. есть реализация API на PHP, и она прекрасно работает.