Я использую file_get_contents () с базовой авторизацией HTTP, чтобы получить контент от моего $url
:
$url = "http://example.com";
$cred = sprintf('Authorization: Basic %s', base64_encode('username:password'));
$opts = array(
'http' => array(
'method' => 'GET',
'header' => $cred
)
);
$ctx = stream_context_create($opts);
$data = file_get_contents($url, false, $ctx);
Когда у меня есть правильное имя пользователя и пароль в моем коде, я могу получить контент из URL совершенно нормально, независимо от того, к какому сетевому соединению я был подключен.
Но я хочу сделать это на основе сетевого подключения. Например, если я подключился к своей локальной сети, он может получать содержимое с URL-адреса, не спрашивая имя пользователя и пароль, но если я подключился к любому другому сетевому подключению, пользователю нужно будет ввести имя пользователя и пароль.
Если я не ошибаюсь, мне нужно использовать HTTP authentication with PHP
Однако я не знаю, как я могу интегрировать его в мой код и заставить его выполняться на основе сетевого подключения, но не всегда.
Буду очень признателен, если кто-нибудь сможет мне помочь в этом вопросе.
Основная проблема — определить, к какой сети вы подключены. Ты должен бежать ipconfig
или же ifconfig
может быть, даже route
Команда для проверки / анализа, к какой сети вы подключены. Если вы решили эту проблему, вы можете использовать простой if ()
заявление, чтобы включить имя пользователя / пароль или нет.
Других решений пока нет …