За стеклом
АрхивМы остановились на локальном тестировании страницы нашего http-сервера, транслирующего в реальном времени данные с веб-камеры наблюдения.
Мы остановились на локальном тестировании страницы нашего http-сервера, транслирующего в реальном времени данные с веб-камеры наблюдения. С единственной целью — убедиться, что камера подключена, а сервер правильно отконфигурирован с помощью программы Active WebCam. Если кому-то даже фраза «локально протестировали» показалось оскорбительной, поясню: в адресной строке браузера набираем IP внутренней сети компьютера, на котором установлена веб-камера и запущен http-сервер; сразу за IP после двоеточия — номер порта, который мы придумали для вещания в процессе конфигурации Active WebCam. IP-адреса внутренней (локальной) сетки в девяти случаях из десяти выглядят как 192.168.x.x либо 10.0.x.x (x — произвольная цифра от 0 до 255), рис. 1.
Если вы всё проделали правильно, после запроса появится окно авторизации, в котором вы указываете логин и пароль — те, что придумали, конфигурируя http-сервер (в программе Active WebCam).
Всё у нас тип-топ, и теперь начинается самая захватывающая часть проекта. Условно назовем ее «выход в свет», поскольку, как вы понимаете, внутренние IP-адреса нашей домашней сети из Интернета напрочь не видны и по 192.168.0.102 наблюдать за гостиной можно разве что из спальни вашей квартиры, из детской или где там у вас разметались компьютеры?
Как мы скоро убедимся, выход в свет — задача не просто заковыристая, но и амбициозная. Амбициозность эта о двух головах:
Итак, чинно, не спеша и с достоинством спускаемся с горы, подходим к первой корове и вводим IP нашего маршрутизатора в адресную строку браузера, дабы запустить панель управления. В многочисленных закладках отыскиваем опцию под названием Virtual Server (как правило, в разделе Advanced Features, продвинутых настроек). Интерфейс управления маршрутизатором у каждого производителя оригинален, да и терминология плывет от случая к случаю, однако смысл один и тот же: Virtual Server (виртуальный сервер) используется для предоставления пользователям Интернета (тем, кто обретается снаружи, за пределами локальной сети) доступа к различным услугам ваших домашних компьютеров — http-серверу, ftp-серверу, почтовому серверу, telnet и прочая. Доступ этот заключается в том, что всякий запрос по внешнему IP-адресу, присвоенному нам провайдером (так называемый WAN IP), автоматически переадресовывается маршрутизатором на внутренний IP-адрес компьютера (LAN IP), на котором работает http-сервер с веб-камерой. Страница настроек виртуального сервера выглядит примерно так (рис. 2).
В строке Name (название создаваемого вами виртуального сервера) указываете всё, что угодно; Private IP — это локальный IP-адрес компьютера, на котором установлена веб-камера и запущен http-сервер; Protocol Type (тип протокола) выбираете как TCP, Private Port и Public Port — выбранный вами номер порта для вещания веб-камеры в Интернете. Укажите один и тот же номер как для внутреннего (private), так и для внешнего (public) порта. Вполне вероятно, что в панели управления маршрутизатора подобной заморочки (с разделением портов на внутренние и внешние) не окажется — дык и флаг ему в руки: главное, понимать смысл и назначение порта. Настройка Schedule (график работы) определяет дни недели и время работы вашего виртуального сервера. Выберите опцию Always (всегда) — не прогадаете.
Всё! Жмем кнопку Apply, и в нижнем списке виртуальных сервером появляется новая строка с http-сервером для вещания веб-камеры. Теперь можно проверить нашу работу по-взрослому: по «настоящему» (внешнему) IP-адресу. Не выходя из панели управления маршрутизатора, находим закладку Status (состояние работы) и в разделе WAN (Wide Area Network — внешняя сеть) находим IP-адрес, который присвоил вам провайдер для текущей сессии в Интернете (рис. 3).
На момент написания этой «Голубятни» ласковый и нежный зверь «Стрим» осчастливил меня волшебным набором циферок — 83.237.19.134. Запоминаем их, впечатываем в адресную строку браузера, указываем порт, логин, пароль и voila! — видим грандиозные перемены: осточертевшую картину храпящей на диване леонбергерской свиньи теперь украшает моя замечательная супруга, а также новый обитатель дома — абиссинский котенок Рамзес (сидит на голове жены), рис. 4.
Глядя, как Светлана обливается слезами вместе с Серджио Кастеллитто и Пенелопой Круз («Не уходи») в наушниках (лишь бы не помешать дорогому мужу морочить голову читателям «Голубятен»!), я тоже прослезился… от непривычной политкорректности. А уж неповторимый по инопланетной внешности Рамзес (как-никак, наследник древнеегипетских кошек!) буквально вынудил меня разбавить его абиссинским портретом мракоту голубятинского компьютеризма (рис. 5).
Нам осталось последнее — увы, самое мучительное! — телодвижение: преодолеть ограничения динамического IP-адреса. В принципе, если бы этот мой 83.237.19.134 был постоянным, можно было смело ставить точку после запуска виртуального сервера на маршрутизаторе: ведь доступ к веб-камере из Интернета открыт. Однако пройдет пара-тройка часов, мой провайдер «МТУ-Интел» сменит IP, и — кирдык! — все трогательно налаженные цацки канут в небытие. Что делать?
На помощь приходит замечательная услуга по предоставлению динамических хост-систем (Dynamic Hostnames). Замечательность ее в том, что в плотном поголовно платном пространстве американского Интернета dynamic hostnames предоставляются в большинстве своем… совершенно бесплатно! Более того, компаний, промышляющих этими услугами, даже не десятки, а чуть ли не сотни. Я обратился в первую попавшуюся (по рекомендации Главного Магистра Железяк, Тестеров и Паяльников, какого мне только приходилось встречать в жизни, Сергея Леонова) — DtDNS. И не был разочарован: на всё про всё (включая регистрацию и настройку) ушло от силы десяток минут. И это при том, что поначалу пришлось потыкаться в закрытые двери из-за непривычности терминологии. Экономлю читателю и эти минуты:
Вопрос на засыпку: зачем нам понадобился DtDNS со своей динамической хост-системой? Ну дык ёлы-палы — даже мой Рамзик уже догадался: динамический IP-адрес, полученный от провайдера, может теперь меняться сколько угодно, у нас же постоянно будет оставаться что-то вроде sergei.3d-game.com или kolyan.scieron.com. Осталось только научить сервис DtDNS автоматически обновлять связку нашего домена с текущим динамически IP-адресом. Вот этим мы и займемся напоследок.
Обратите внимание: на странице General Settings в настройках нашей динамической хост-системы есть две статусные строки — Update Client и Update Count (клиент обновления и количество обновлений). Дело в том, что сервис DtDNS умеет взаимодействовать со специальными программами (теми самыми клиентами обновления), которые как раз и выполняют функцию автоматического освежевания (© «Комедия строгого режима») связки домена и текущего динамического IP. Таких клиентов — как собак нерезаных: на одном только сайте DtDNS перечислено аж 37 штук! Первой в списке идет программа DynSite. Не случайно она и первая, и наилучшая. Посему не ищем добра от добра: покупаем DynSite за 15 баксов либо пользуемся одним из миллиона генераторов ключей, которыми завален бакунианский Интернет (оно и понятно: DynSite — The Best!), и быстренько конфигурируем программу для нанесения завершающего удара по теме трех последних «Голубятен» (признаюсь, веб-камера эта уже начала меня маленько доставать):
Как обычно, линки, помянутые в «Голубятне», вы найдете на моей домашней странице www.internettrading.net/guru.