macOS Sierra(10.12.6)ホスト名コマンドに「.local」は追加されません。

macOS Sierra(10.12.6)ホスト名コマンドに「.local」は追加されません。

簡単に言うと:

私が知る限り、hostnameコマンドにはオプションがあります-f。マニュアルページから:

-f 精子の名前にドメイン情報を含めます。これがデフォルトの動作です。

これがデフォルトの動作であるため、印刷された名前にドメイン情報が含まれていませんMY-COMPUTER-NAME

追加情報:

共有設定で「コンピュータ名」を変更することはできません(図のように灰色で表示されます)。

共有設定では、コンピュータ名がHippotigrisに設定されており、次のメッセージが表示されます。 「ローカルネットワーク上のコンピュータからコンピュータにアクセスできます:LM-SJN-21001464

最初に私の「localhostname」も「Hippotigris」に設定されていましたが、この問題を発見したときに次のコマンドで得られた名前に変更しましたhostname

共有環境設定、ローカルホスト名の入力フィールドはLM-SJN-21001464に設定され、「.local」で終わり、灰色で表示されます。

私が見つけたこの記事タイトルは「ターミナルでMacホスト名またはコンピュータ名を設定する」ですが、これは問題が解決するのか悪化するのかわかりません。

私が達成したいこと:

私はNodeJSの組み込み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。したがって、私のコンピュータの構成に関連していると推測されます。

答え1

ありがとうTwitterのヘルプDNS設定の検索ドメインに「.local」を追加することで重要な問題を解決しましたがhostname(およびos.hostname)は、まだ「.local」が追加されていないホスト名を返します。

したがって、私が経験した問題に対する答えは次のとおりです。しかし、私が投稿した質問ではありません。何が起こっているのか、心配すべきかを理解したいと思います。

「ドメイン検索」を表示する DNS タブのネットワーク設定には「.local」が含まれます。

答え2

これCPU名マシン自体の名前です。ホスト名の後ろの部分、つまり.localinhippotigris.localまたは.kentcdodds.cominをhippotrigris.kentcdodds.com呼び出します。ドメイン名

ホスト名自体にドメイン名を追加しないでください。

コメントですでに述べたように、.localこれは特別です。マルチキャストDNS、ローカルLANセグメントでマルチキャスト名解決を実行します。これは通常のDNS名解決がどのように機能するかとは異なり、Appleで広く使用されています。

したがってrequire('dns').lookup()、ノードでこれを行うと、検索に通常のDNSメカニズムが使用されます。ただし、ホスト名は通常のDNSサーバーとして使用するサーバー(ホームルーターのサーバーであるかISPのDNSサーバーであるか)に登録されません。だからあなたは答えを得ません。

を追加すると、.localノード(またはデフォルトのMacOSライブラリ)が代わりにmDNSを使用するため、ホスト名を見つけることができます。

したがって、.local検索パスに直接追加するか、別の方法でどこかに追加する必要があります(たとえば、LinuxではDNSとmDNSを使用して名前検索を任意の順序で同時に設定できます)。

表示されたGUIウィンドウに入力したホスト名(Hippotigrisis)がmDNSを介して発表された名前(LM-SJN-21001464)と異なる理由はわかりません(Mac UIではこれはホスト名というヒントを提供しないためです)。実際に発生する) - ダイアログが設定する情報が正確に何であるか、他の名前(シリアル番号のように見える)がどこに設定されているかを調べる必要があります。コマンドラインツールはそれを検索するのに役立ちます。

答え3

うわー、この質問は少し変です。ここで何が起こっているんです。

他の人が言ったことを繰り返さないでください。

...使用しているNodeアプリのmDNS名にアクセスして、LANの別のボックスにアプリを表示でき、mDNSを使用したいとします。いいえ使用すべき。地元のしかし、IPv4アドレスを使用する代わりに、アドレス名にwebpackなどのツールを使用すると、0.0.0.0webpack設定ファイルにホスト名を設定して、LAN(MacBook上で実行されている別のモバイルデバイス)内のアプリケーションの開発サーバーバージョンにアクセスできます。あります。ローカルで実行されるReactアプリケーション。

いくつかのAOLキーワード検索を実行した後、macOSシステム設定の共有パネルで参照されている名前も次のようになります。ネットワークBIOS名前であり、ある時点ではNETBIOS名が15文字を超えることはできないようです。これがまだ本当かどうかわからないだから計算してみると、LM...のあるコンピュータ名は正確に15文字です。

ここで暗闇の中で撮影

関連情報