Приветствую Вас Гость | RSS

Четверг, 02.05.2024, 09:04
Главная » 2012 » Март » 25 » как из PHP войти на другой сайт под логином и паролем и что такое base64
23:23
как из PHP войти на другой сайт под логином и паролем и что такое base64
Понадобилось снять картинку в формате jpeg с ip-камеры. Путём анализа исходников веб-морды выяснил, что камера вещает картинку по адресу http://user:password@95.xx.xx.xx/GetData.cgi?CH=1. Встал вопрос, как на этот адрес достучаться из скрипта php, куда вводить логин и пароль, и как всё это дело отправлять на камеру. Вот, чтобы авторизоваться, нужно в заголовок http-запроса затолкать волшебную строчку примерно такого содержания:
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Теперь про абракадабру после слова Basic - это и есть логин с паролем, закодированные кодировкой base64. Это такая кодировка, придуманная для передачи бинарных данных по электронной почте, в которой используется 2 в 6-й степени символов (большие и ммаленькие английские плюс цифры и пара значков), а на конце один или парочка "=". В PHP для шифровки и дешифровки base64 есть пара готовых функций. Итого получаем примерно такой код:

$fp = fsockopen("95.xx.xx.xx", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)
\n";
} else {
$out = "GET /GetData.cgi?CH=1 HTTP/1.1\r\n";
$out .= "Host: 95.xx.xx.xx\r\n";
$out .= "Authorization: Basic " . base64_encode ("login:password") . "\r\n";
$out .= "Connection: Close\r\n\r\n";
$page = "";
fwrite($fp, $out);
while (!feof($fp)) {
echo fgets($fp, 128);
}
Просмотров: 8703 | Добавил: intell | Теги: php, http, base64, логин, пароль | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]