Я пытаюсь использовать инструмент командной строки «dns-sd» на моем компьютере с Windows 7.
Я уже кое-что умею. Например, я могу зарегистрировать службу с помощью «dns-sd -R ...». Я также могу просматривать (просматривать) зарегистрированные службы, используя "dns-sd -B ...". Что мне все еще не хватает, так это как отменить регистрацию службы.
В тот момент, когда я набираю «dns-sd -R ...», dns-sd не возвращает меня в командную строку. Чтобы вернуться в командную строку, мне нужно нажать Ctrl-C. И сервис остается зарегистрированным, пока я не нажму Ctrl-C.
Я хочу запустить "dns-sd -R ..." в фоновом режиме, а затем я хотел бы иметь возможность отменить регистрацию службы из командной строки.
Еще одна вещь, которую я пока не понимаю, - это то, что означает «поиск услуги». На моей картинке должно быть достаточно зарегистрировать службу, увидеть ее, а затем отменить регистрацию. Но, видимо, мне нужно найти услугу. Что это значит и зачем мне это делать?
ДОБАВЛЕНО: Как просят, уточняю. Я имею в виду инструмент командной строки «dns-sd», который я использую в Windows 7. Я думаю, что эта команда является частью программного обеспечения Bonjour для Windows (от Apple). Ну, я не проверял, была ли у меня эта команда перед установкой Bonjour, но я предполагаю, что у меня ее не было. Итак, мой вопрос касается этой команды.
Мне не совсем понятно, чего вы пытаетесь достичь, но похоже, что вы используете неправильный инструмент. dns-sd - это инструмент командной строки для тестирования многоадресной передачи DNS и обнаружения служб DNS (DNS-SD). Цель обнаружения службы DNS, как следует из названия, - рекламировать сетевые службы. Операции DNS-SD следующие:
Перечислить:
Откройте для себя домены просмотра и регистрации, настроенные на хост-машине. ".local" всегда будет возвращен, также могут быть доступны глобальные домены (например: example.com):
dns-sd -E
Просматривать:
Найдите экземпляры службы (необязательно в определенном домене):
dns-sd -B _http._tcp
dns-sd -B _http._tcp dns-sd.org
Разрешить:
Разрешает экземпляр службы (возвращенный функцией Browse) для хоста и порта для подключения вместе с текстовой записью, содержащей любые параметры конкретной службы:
dns-sd -L \ *\ Google,\ searching\ the\ Web _http._tcp dns-sd.org
Регистр:
Регистрирует экземпляр службы, чтобы его могли просматривать и разрешать другие клиенты, просматривающие данный домен.
dns-sd -R Example _http._tcp local 80
Не могли бы вы подробнее рассказать о том, чего пытаетесь достичь?
Если вы запустите dns-sd
в терминале (или «окне DOS») для регистрации службы, процесс остается активным на переднем плане и не возвращает вам приглашение оболочки. Соответствующая служба остается зарегистрированной, пока dns-sd
процесс продолжает работать. Как только вы отмените этот процесс, нажав '[ctrl] + [c]', сервис становится незарегистрированным.
Следовательно, чтобы вернуть приглашение в терминал, вы должны запустить dns-sd
команда (= процесс) в фоновом режиме (или отправить ее в фоновый режим после ее запуска). Чтобы отменить регистрацию соответствующей службы, вам нужно убить процесс любым способом:
снова вывести его на передний план и '[ctrl] + [c]' это, или
убить соответствующий PID (идентификатор процесса).
Способ отмены регистрации службы с помощью демона Apple mDNS заключается в том, что после регистрации службы процессу регистрации предоставляется дескриптор службы, и этот дескриптор необходим для отмены регистрации службы. Это означает, что обычно только процесс, который регистрирует, имеет необходимую информацию для отмены регистрации. Процесс не может запустить и отменить регистрацию службы, которая изначально не была зарегистрирована этим процессом.
Одна из причин такой конструкции заключается в том, что процесс, предоставляющий услугу, должен также отвечать за ее регистрацию и отмену регистрации, что обеспечивает синхронизацию статуса регистрации услуги с фактической доступностью услуги.
При использовании dns-sd для регистрации прокси-сервера процесс продолжает работать, поэтому, когда вы его закроете, этот процесс может выполнить надлежащую отмену регистрации. Если вам нужна долговременная регистрация службы, вам необходимо сделать так, чтобы процесс dns-sd был долговечным. Launchd можно использовать для управления этим в OS X.
Еще одна вещь, которую я пока не понимаю, - это то, что означает «поиск услуги». На моей картинке должно быть достаточно зарегистрировать службу, увидеть ее, а затем отменить регистрацию. Но, видимо, мне нужно найти услугу. Что это значит и зачем мне это делать?
Просмотр служб просто сообщает вам, какие экземпляры службы существуют; Он не предоставляет достаточной информации для реального подключения и использования. Чтобы использовать службу, вы берете удобное для пользователя имя, обнаруженное при просмотре, и "ищите" или "разрешаете" экземпляр службы. Это сообщает вам дополнительную информацию, необходимую для подключения к нему: хост, номер порта и т. Д.
Это снижает трафик (дополнительные данные могут быть относительно большими, поэтому вы не хотите получать их для каждого экземпляра службы), а также отделяет имена стабильных экземпляров службы от, возможно, менее стабильных данных подключения экземпляра службы, аналогично тому, как имена хостов и IP-адреса развязаны.