Как аутентифицировать запрос listclients - PullRequest
0 голосов
/ 11 июля 2020

Я пытаюсь получить из PHP информацию о подключенных в данный момент клиентах.

http://10.0.0.2:8000/admin/listclients?mount=/stream.mpeg

, но это требует аутентификации, что невозможно из программы. Итак, я попробовал

http://10.0.0.2:8000/admin/listclients?mount=/stream.mpeg&user=xyz&pass=wert

, но Icecast не принимает пользователя и проходит. Если я сделаю это в браузере, это сработает?

Каким образом я должен предоставить пользователя и пройти? Или требуется дополнительная информация? Гугл мне не помог.

1 Ответ

0 голосов
/ 12 июля 2020

Невозможно поместить пользователя и передать прямо в URL-адрес. Эта информация должна быть закодирована в base64 и помещена в заголовок. Ниже вы найдете пример php:

    $url = "http://www.domain.eu:80004/admin/listclients?mount=/stream.mpeg";
    $user  = "source";
    $pass= "password";
    $opts = array('http' =>
        array(
            'method'    => 'GET',
            'header'    => array ('Authorization: Basic '.base64_encode("$user:$pass"))
        )
    );
    $context = stream_context_create($opts);
    $list1 = file_get_contents($url1, false, $context);

Вы можете использовать пароль администратора или исходный пароль. В этом примере я использовал исходный пароль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...