Intereting Posts
Настройка производительности OpenBSD (рабочий стол) Компилятор C не может создавать исполняемые файлы Можно ли переместить relpath в одной команде? Firefox в Linux не интерпретирует 12px Arial правильно, но 1 или 0,9 Переименование нескольких файлов, удаление всего одного экземпляра шаблона В каком пакете находится этот диалог с возможностью поиска? Почему «kill -l» дает разные результаты в рыбе и bash Обновление ядра (4.10) привело к сбою XServer и остальной системы (Arch) Ubuntu говорит, что дисковое пространство исчерпано. Нет доступа к терминалу. Вход только гостя. КАК я могу стереть дисковое пространство сейчас? Предотвратите изменение режима работы mplayer Конфигурация FreeBSD gettytab Как увеличить нет. потоков nfsd в WD моем облаке (nfs server)? для лучшей производительности Замена точек в имени файла символами подчеркивания, кроме расширения Установка Java в Ubuntu 10.04 Firefox / Chrome Как создать постоянные псевдонимы в Unix-подобных системах?

macOS Sierra (10.12.6) команда hostname не добавляет «.local»

Чтобы быть кратким:

Из того, что я понимаю, у команды hostname есть опция -f . Со страницы руководства:

-f Включить информацию о домене в напечатанное имя. Это поведение по умолчанию.

Поскольку это стандартное поведение, я был удивлен, когда мое напечатанное имя не содержало информацию о домене, а просто MY-COMPUTER-NAME .

Некоторая дополнительная информация:

Я не могу изменить «Имя компьютера» в настройках «Общий доступ» (оно отображается серым цветом, как показано здесь):

настройки общего доступа с указанием имени компьютера, установленного в Hippotigris, и сообщения: «Компьютеры в вашей локальной сети могут получить доступ к вашему компьютеру по адресу: LM-SJN-21001464

Первоначально мое «Локальное имя хоста» также было установлено на «Hippotigris», но когда я заметил эту проблему, я изменил ее на то, что получал от команды hostname :

настройки общего доступа с полем ввода для локального имени хоста, установленным в LM-SJN-21001464, оканчивающимся на «.local», выделены серым цветом

Я нашел эту статью под названием «Установка имени хоста Mac или имени компьютера из терминала», но я не уверен, решит ли это мою проблему или усугубит ее.

Что я пытаюсь сделать :

Я использую встроенную функцию dns.lookup в сочетании со встроенной функцией os.hostname . Я предполагаю, что функция hostname возвращает то же самое, что печатает команда hostname (что она и делает в настоящее время). Когда я бегу:

 node -e "require('dns').lookup(require('os').hostname() + '.local', console.log)" 

Он работает нормально и печатает IP-адрес моей машины в локальной сети, но при запуске

 node -e "require('dns').lookup(require('os').hostname(), console.log)" 

Он регистрирует ошибку: getaddrinfo ENOTFOUND LM-SJN-21001464

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

    Благодаря некоторой помощи в твиттере я добавил «.local» в мои поисковые домены в настройках DNS, и это os.hostname мою основную проблему, хотя hostnameos.hostname ) по-прежнему возвращает имя хоста без добавления «.local».

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

    сетевые настройки на вкладке DNS, в которой отображается «Поиск доменов», включают «.local»

    Имя хоста – это имя самой машины. Часть, которая идет после имени хоста, то есть .local в hippotigris.local или .kentcdodds.com в hippotrigris.kentcdodds.com является так называемым доменным именем .

    Вы никогда не должны добавлять доменное имя к самому имени хоста.

    Как уже упоминалось в комментариях, .local является особенным: это домен для mDNS , который выполняет многоадресное разрешение имен в вашем сегменте локальной сети. Это работает иначе для нормального разрешения имен DNS и широко используется Apple.

    Поэтому, когда вам require('dns').lookup() на узле, он будет искать с использованием обычного механизма DNS. Тем не менее, ваше имя хоста не зарегистрировано на том, что вы используете в качестве обычного DNS-сервера (либо на домашнем маршрутизаторе, либо на DNS-сервере вашего провайдера). Поэтому вы не получите ответ.

    Если вы добавляете .local , узел (или базовые библиотеки MacOS) вместо этого использует mDNS, что означает, что они могут найти ваше имя хоста.

    Вот почему вам нужно добавить .local в каком-то месте, либо напрямую, либо автоматически в пути поиска, либо любыми другими способами (например, в Linux вы можете настроить поиск имен для использования как DNS, так и mDNS в любом порядке).

    Что касается того, почему имя хоста, которое вы вводите в окне GUI, которое вы показали (Hippotigrisis), отличается от имени, объявленного через mDNS (LM-SJN-21001464), я не уверен (потому что пользовательский интерфейс Mac не дает подсказки о том, что на самом деле) – нужно было бы выяснить, какую именно информацию устанавливает этот диалог и где задано другое имя (которое выглядит как серийный номер). Инструменты командной строки могут помочь в поиске этого.

    Вау, это немного глупо … вопроса, так как здесь происходит несколько вещей.

    Стараясь не повторять то, что сказали другие

    … Я предполагаю, что вы хотите получить доступ к своему имени mDNS приложения Node, с которым вы работаете, поэтому вы можете просматривать приложение из отдельного windows в вашей локальной сети и предпочли бы использовать mDNS без необходимости используйте .local в имени адреса, в отличие от использования адреса IPv4, который, кстати, такие инструменты, как webpack, позволяют установить имя хоста 0.0.0.0 в файле конфигурации webpack для доступа к сборке приложения dev-сервера в локальной сети, т.е. получить доступ к локально запущенному приложению React на MacBook с отдельного мобильного устройства.

    При парном поиске по ключевому слову AOL кажется, что имя, на которое вы ссылаетесь на панели общего доступа системных префов в macOS, также может быть именем NETBIOS , и, очевидно, в какой-то момент имя NETBIOS не может быть длиннее 15 символов, не уверен если это все еще так , следовательно, почему имя вашего компьютера с LM … ровно 15 символов, когда я его посчитал.

    Делая снимок в темноте 🐦📦, так как вы не описали устройства в рассматриваемой сети, т.е. есть controller домена? или это домашняя сеть? рабочая сеть? или каким-то образом сеть, к которой вы подключаетесь, и есть устройство, которое динамически меняет имя хоста вашего компьютера, когда оно завершает подключение к этой сети?

    Все, что сказал, я бегу MacOS, т.е. 10.13.х в тот момент, и когда я бегу,

     hostname -f 

    это возвращает мой

     $HOSTNAME.local 

    т.е.

     rogue.local 

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

    … ааааа, набрав здесь нагрузку, зайдя в Sys Prefs> вкладка “Сеть”> WINS … найдите имя NetBIOS и посмотрите, на что оно настроено; возможно, вы захотите увидеть, меняется ли это имя при подключении к различным сетям , Наконец, если я правильно понимаю ваш вопрос, вы пытаетесь получить доступ к вашему компьютеру с внешнего устройства, используя имя хоста компьютера, а не адрес IPv4, и, как уже говорили другие, доступ к именам хостов в локальной сети с использованием mDNS зависит от этого . местный бит, чтобы выполнить свою магию 🧙‍♀️. Тем не менее, если бы это был я, я бы сохранил .local как часть того, с чем вы работаете, так как он позволит другим знать, что они получают доступ к вашему Node-приложению через mDNS.

    выигрывает имя