GNU/Linux >> Linux の 問題 >  >> Linux

最初に /etc/hosts を使用してホスト名を解決する Linux コマンド ライン ユーティリティ

解決策 1:

これは getent で簡単に実現できます :

getent hosts 127.0.0.1

getent nsswitch.conf で設定されたあらゆるタイプのデータのルックアップを行います .

解決策 2:

動作するツールの 1 つは getent です .したがって、 getent hosts www.google.com を使用できます 、または getent hosts localhost . Name Service Switch 構成 /etc/nsswitch.conf で指定されているように、データベースからエントリを取得します。 .

より現代的な実装には getent ahosts www.google.com を使用してください 複数の結果が得られます。

解決策 3:

getent ahosts を使用 、例:

$ getent ahosts www.google.com | sed -n 's/ *STREAM.*//p'
216.58.210.196
2a00:1450:4006:803::2004

glibc リゾルバーを介してすべての IPv4 および IPv6 アドレスを取得します (したがって、/etc/hosts を使用します) まず、通常は /etc/nsswitch.conf で構成されます ).

getent hosts は使用しないでください これは、IPv6 または IPv4 アドレスのいずれか (両方ではない) を提供し、選択したプロトコルが機能しないものではない可能性があるためです。実際、一般的には IPv6 アドレスが好まれますが、一部の場所では、IPv6 データはルーターによってフィルタリングされます (サポートされていません)。

解決策 4:

次のような gethostbyname() (非推奨) ラッパーを使用できます:

python -c 'import socket;print socket.gethostbyname("www.google.com")'

または、次のような getaddrinfo() ラッパー:

python -c 'import socket;print socket.getaddrinfo("www.google.com","http")[0][4][0]'

getaddrinfo はすべてのインスタンスをリストとして返すことに注意してください。コマンドの最後の部分は、最初のタプルのみを選択します。これは、IPv6 アドレスを返すこともできます。

解決策 5:

resolveip

奇妙なことに、これは RHEL と Ubuntu の mysql-server パッケージの一部です。


Linux
  1. コマンドラインを使用してLinuxをシャットダウンまたは再起動する方法

  2. Linuxは複数の連続したパスセパレーター(/ home //// username /// file)をどのように処理しますか?

  3. コマンドラインを使用してLinuxを再起動する方法

  1. Linux の /etc/hosts ファイルについて

  2. Linux コマンドラインを使用して Node.JS をアンインストールしますか?

  3. Curl コマンド ライン ユーティリティを使用した並列ダウンロード

  1. Linux で数値の統計を出力するコマンド ライン ユーティリティ

  2. Linux/OSX の /etc/hosts/ ファイルで、ワイルドカード サブドメインを使用するにはどうすればよいですか?

  3. /etc/hosts のサイズ制限 (Linux)