Я пытаюсь создать код PHP, который может изменить пароль пользователя с помощью PHP API, вот мой код:
<?php
require('routeros_api.class.php');
$API = new routerosAPI();
$API->debug = true;
if ($API->connect('192.168.0.101', 'user', 'password')) {
$API->write('/tool/user-manager/user/getall', false);
$API->write('=.proplist=username', false);
$API->write('?username=john');
$API->write('/tool/user-manager/user/set',false);
$API->write('password=4321');
$READ = $API->read(false);
$ARRAY = $API->parseResponse($READ);
print_r($ARRAY);
$API->disconnect();
}
?>
Когда я запускаю этот код, кажется, он возвращает только имя пользователя, которое я ищу, но пароль не меняется. Любая помощь?
Вы используете неправильные команды. Я не использовал PHP API, поэтому некоторые части будут описываться словами, а не кодом.
Прежде всего вам нужно получить ID записи для редактирования. Если имя пользователя john
, это будет:
$API->write('/tool/user-manager/user/print', false);
$API->write('=.proplist=.id', false);
$API->write('?username=john');
Прочитать и разобрать ответ. Например вернул .id
является *1
, Используйте это, чтобы изменить пароль:
$API->write('/tool/user-manager/user/set', false);
$API->write('=.id=*1', false);
$API->write('=password=new_pass');
Других решений пока нет …