Как использовать Добрый день?

Не уверенный, если это поможет, но здесь является примером двух хостов на простой установке, я определил это, апачи прислушиваются к трафику в стандартном порте, 80 затем каждых виртуальных хостов имеют то же.

Listen 80

NameVirtualHost *:80

# Site 1 Comment
<VirtualHost *:80>
   ServerName site1.intranet
   ServerAdmin administrator@whatever.com
   DocumentRoot /var/www/html/site1
</VirtualHost>

#  Site 2 Comment
<VirtualHost *:80>
  ServerName site2.intranet
  ServerAdmin administrator@whatever.com
  DocumentRoot /var/www/html/site2
</VirtualHost>

Сервер DNS возьмет запрос site1.intranet или site2.intranet и передаст тому же IP, в этом случае апачский сервер, апачская конфигурация выше перенаправит к правильной папке, в зависимости от которой требуют сайт

надежда, которая помогает

25
задан 5 March 2010 в 15:26
3 ответа
  1. Да. Stuart Cheshire, который был создателем и является основным специалистом по обслуживанию Рандеву/Добрый день в Apple, который также сопредседательствовал рабочая группа IETF ZeroConf, и записал книгу O’Reilly по Нулевым Сетям Конфигурации, описал Добрый день как “трехногий табурет”, где участки:

    1. IPv4 (и IPv6) локальное для ссылки обращение
    2. Многоадресно передайте определение имен (mDNS)
    3. Сервисное исследование DNS (DNS-SD)

    Рабочая группа IETF ZeroConf и Apple оба рассматривают локальное для ссылки обращение, особенно IPv4 локальное для ссылки обращение (169.254.0.0/16 адреса), чтобы быть частью ZeroConf/Bonjour, даже при том, что локальное для ссылки обращение поставлялось за годы до других двух “участков табурета”.

    Обратите внимание, что, так как Windows уже поддерживает автоматическое локальное для ссылки обращение даже без Apple Добрый день для установленного программного обеспечения Windows, многие пользователи Windows не думают о IPv4 локальное для ссылки обращение, чтобы быть частью Bonjour/ZeroConf.

  2. Да. Mac и машины Windows, по умолчанию, делают IPv4 локальное для ссылки обращение, если они настроены для DHCP, но нет никакого доступного сервера DHCP. Linux и машины BSD с Avahi (или возможно другие реализации ZeroConf) установленный также сделают это.

  3. Если компьютер работает Добрый день, его имя хоста публикуется на LAN через mDNS. Если названием Вашей машины будет “Alice”, то это будет Alice.local через mDNS. От другого компьютера (позволяют нам назвать это “Bob”) на той же LAN (а именно, на том же локальном для ссылки многоадресном домене), необходимо смочь просто ввести ping Alice.local, и Bob должен сделать mDNS поиск Alice.local для обнаружения IP-адреса (IP-адресов) Alice и ping (один из) адрес (адреса), это возвращается.

    Обратите внимание, тем не менее, что Добрый день дифференцируется между сервисными названиями и именами хостов. Например, если у Вас есть два отдельных принтера USB, скажем, “HP” и “Canon”, подключенный к Alice, и Alice действует как, скажем, lpr сервер печати для них обоих, они могут каждый обнаружиться как свой собственный сервис, который отображается назад на Alice.local как хост.

    Их сервисные названия показали бы до пользователя как “HP” и “Canon” без упоминания о Alice. Негласно, они были бы известны как HP._printer._tcp.local и Canon._printer._tcp.local, и поиски DNS-SD на тех сервисных названиях показали бы, что те сервисы доступны на Alice.local на двух различных портах TCP.

    Таким образом да, приложения должны уведомить Добрый день демон (названный mDNSResponder в реализации Apple), что у них есть сервисы, которые они хотят рекламировать. macOS имеет механизмы для автоматической обработки сервисной рекламы для сервисов прежней версии, которые исходно не Добрый день знают. Например, macOS's sshd OpenSSH, который не поддерживает Добрый день непосредственно, но macOS заботится о рекламе ssh сервис через Добрый день так, чтобы Вы могли просто ssh username@Alice.local от других машин на LAN.

  4. На macOS существует инструмент командной строки "dns-sd", который может зарегистрировать сервис с помощью этого синтаксиса:

    dns-sd -R <Name> <Type> <Domain> <Port> [<TXT>...]  
    # (Register a service)
    

    Так, например:

    dns-sd -R MyWebsite _http._tcp local 80
    

    Я не был бы удивлен, включено ли это в Добрый день для Windows, или Добрый день SDK для Windows, или если можно скомпилировать его для Windows из mDNSResponder проекта Apple с открытым исходным кодом. Поиск с помощью Google для dns-sd.exe, Я вижу, что такая вещь существует. Я не уверен, что просто загрузил бы двоичный файл для него. Вместо этого я попытался бы получить его от одного из пакетов, упомянутых выше или скомпилировать его сам из mDNSResponder источников проекта.

  5. Можно также использовать dns-sd инструмент командной строки, чтобы просмотреть для сервисов и искать их. Вот пример поиска локального веб-сервиса:

    Обзор для локальных веб-сервисов с -B:

    $ dns-sd -B _http._tcp local  
    Browsing for _http._tcp.local  
    Timestamp     A/R Flags if Domain                    Service Type              Instance Name  
    16:30:59.870  Add     3  6 local.                    _http._tcp.               My Cool Web App  
    16:30:59.871  Add     3  6 local.                    _http._tcp.               Someone Else's Web Service  
    16:30:59.871  Add     3  6 local.                    _http._tcp.               A Third One  
    ^C
    

    Ищите тот, с которым я хочу, "Мое Прохладное веб-приложение", -L:

    $ dns-sd -L "My Cool Web App" _http._tcp local  
    Lookup My Cool Web App._http._tcp.local  
    16:31:52.678  My\032Cool\032Web\032App._http._tcp.local. can be reached at MyWebServer.local.:80 (interface 6)  
    ^C  
    

    Запросите IP-адреса для MyWebServer.local, с -Q:

    $ dns-sd -Q MyWebServer.local  
    Timestamp     A/R Flags if Name                             T   C Rdata  
    16:32:40.786  Add     2  6 MyWebServer.local.               1   1 169.254.45.209  
    ^C  
    

    Обратите внимание в этих примерах, что Вы должны Ctrl-C из dns-sd инструмент. Иначе это останется открытым навсегда, непрерывно наблюдая сеть и сообщая о любых изменениях в результатах запроса, который Вы выпустили (такие как веб-серверы, приходящие и уходящие в сети, в то время как Вы сидите с a -B просмотрите открытый запрос). Я нашел это для этого и других причин, dns-sd инструмент не хорошо подходит для того, чтобы быть названным из сценария. Вы могли бы хотеть посмотреть на какой библиотеки ZeroConf для Вашего предпочтительного языка, в конце концов.

Для ответа на один из других вопросов я не знаю ни о какой реализации ZeroConf, которая позволяет Вам выполнять запросы и получать результаты только путем чтения/записи файлов. Большинство приложений, которые используют Добрый день, делает так путем вызова API, любой непосредственно (C/C ++/Obj-C/Swift приложения) или через библиотеку характерный для языка (интерпретируемый/языки сценариев).

53
ответ дан 28 November 2019 в 20:12
  • 1
    Лучшее объяснение Добрый день / Zeroconf I' ve замечен. Необходимо внести некоторых в статью :) Википедии –  Kamil Kisiel 7 March 2010 в 20:38
  • 2
    Это довольно завершено, как всего лишь если you' d нравится подробно останавливаться, как записи DNS используются, не стесняйтесь красть от serverfault.com/questions/18565/… –  andrewtj 10 March 2010 в 03:02

Во-первых, что точно Добрый день делает (просьбы читают мои предположения записанный рев)? Здесь я узнал, что Добрый день включает автоматическое обнаружение компьютеров, устройств и сервисов на сети IP. Но я думал, что это не только "обнаруживает устройства в сети IP", это также создает сеть IP путем присвоения IP-адресов устройствам, куда Добрый день работает.Я прав?

Не совсем; как Jon указал, DHCP (обычно) используется для выделения IP-адресов. Почти таким же способом, которым обычный DNS переводит доменные имена в IP-адреса, Добрый день используется для перевода временных доменных имен (в локальной сети) к IP-адресам если их.

И я все еще пропускаю сущность. Это работает следующим образом? Сначала я подключаю устройства (например, ноутбуки) физически так, чтобы они потенциально могли общаться друг с другом. Затем позвольте, говорят, на некоторых ноутбуках, у меня есть Добрый день выполнение и затем, как следствие, эти ноутбуки присваивают IP-адреса им сам автоматическим способом. Так, ноутбуки (куда Добрый день работает) создают сеть IP. Это работает таким образом?

Нет; ноутбуки, главным образом вероятно, получают свои IP-адреса от локального сервера DHCP. Добрый день просто помогает им разработать, какие услуги каждый может предоставить другим.

Или может быть компьютер, работающий, Добрый день не рассматривается как услуга, и он не широковещательно передает себя просто, потому что Добрый день работает на этом компьютере. Я подразумеваю, что приложения, работающие на компьютерах, должны использовать Добрый день для широковещательной передачи themself. Так, это - приложения, которые широковещательно передают themself (не компьютеры), и это не сделано автоматически (приложение должно широковещательно передать themself явно). Действительно ли это правильно?

Да - обычно, Ваше приложение должно будет рекламировать свое существование явно. Это может часто делаться, пользуясь обеспеченный системой библиотеки (распространенный на OS X) или пользовательские библиотеки (например, Сеть perl:: Добрый день).

Как точно мое приложение может широковещательно передать себя? Я могу использовать командную строку для регистрации сервиса (так, чтобы все приложения, использующие Добрый день, знали, что новый сервис появился),

Я не знаю об инструменте командной строки, который делает это, но много главных языков программирования имеют библиотеки в наличии, чтобы сделать это.

Далее, я хотел бы иметь приложение, которые используют сеть IP, созданную Добрый день. Поскольку то мое приложение должно знать, какие устройства/сервисы присутствуют в сети. Более подробно мое приложение должно иметь список сервисов. Каждый сервис в списке должен иметь имя, IP-адрес, куда он работает и порт, который используется приложением. Может Добрый день предоставить эту информацию в некотором роде?

Большинство библиотек Bonjour должно смочь сделать это для Вас; посмотрите первый пример по http://search.cpan.org/~chlige/Net-Bonjour-0.96/lib/Net/Bonjour.pm

Если имеет место, как точно это работает. Как моя программа может получить эту информацию от Добрый день? Моя программа может считать некоторый файл, созданный Добрый день и содержащий вышеупомянутую информацию? Я могу использовать некоторые команды в командной строке для получения этой информации?

Пользуясь соответствующими библиотеками, программа использует Добрый день протокол, чтобы попросить, чтобы все другие компьютеры в Вашей локальной сети сказали это, какие сервисы они имеют в наличии. Та библиотека затем проанализирует ответы и представит их Вам в более полезном формате.

У меня есть особый интерес к доступу к информации о сервисах из файлов, переменных среды или команд в командной строке. Эти опции, кажется, мне являются самыми простыми! С тех пор в них случаются, я не должен пользоваться никакими дополнительными библиотеками для общения с Добрый день с конкретного языка программирования.

Я не знаю об инструменте, который делает это, но он мог бы существовать.

P.S. Просьбы задают вопросы, если что-то не ясно в моем вопросе. Я попытаюсь сформулировать свой вопрос более ясным способом.

Еще некоторая информация о том, что программу Вы пишете, сделает, и в каком языке Вы пишете это, помог бы помочь.

Для большей вводной информации попробуйте обоих:

4
ответ дан 28 November 2019 в 20:12
  • 1
    caelyx, я добавил необходимое Вами информация в конец моего исходного вопроса. –  Roman 5 March 2010 в 15:27
  • 2
    caelyx, Вы записали, что Добрый день не присваивает IP-адреса: " DHCP (обычно) используется для выделения IP addresses". но Добрый день реализует протокол ZeroConf, и одна из базовых технологий протокола ZeroConf (согласно Википедии) является " Присвоение числовых сетевых адресов для сетевых устройств (локальная для ссылки автоматическая конфигурация адреса) ". –  Roman 5 March 2010 в 15:33
  • 3
    В сетях IPv4 без сервера DHCP/протокола BOOTP хосты присвоят себе 168.* адреса. Добрый день работы правильно с теми адресами. Или это или it' s относящийся к IPv6 Локальные для ссылки адреса. –  jdizzle 7 March 2010 в 05:27

Добрый день не присваивает IP-адреса - это - протокол обнаружения - Вам все еще нужен DHCP/Static/Link-Local (APIPA) IP-адреса для него для работы.

Это использует, многоадресно передает DNS (mDNS) для обнаружения, какие хосты находятся на том же широковещательном домене как самом, и по существу это становится своим собственным сервером DNS.

Посмотрите Bonjour & Zeroconf для низкого.

Если Ваше приложение не для home/un-managed сети, то есть испытывая недостаток в локальном сервере DNS Вам просто не нужно оно.

3
ответ дан 28 November 2019 в 20:12

Теги

Похожие вопросы