
Linux では、Bash ターミナルを使用して次の操作を実行できます。
hostname -d
DNSドメイン名を表示し、hostname -i
ホスト名のネットワークアドレスを表示します。
Mac OS X の Bash ターミナルから、できれば単一のコマンド (必要に応じてオプション付き) を使用して、権限を昇格せずに同じ情報を取得するにはどうすればよいでしょうか?
参考までに、Mac OS X で使用している Bash のバージョンは次のとおりです。
- GNU bash、バージョン3.2.57(1)-リリース (x86_64-apple-darwin15)。
答え1
にはhostname -d
、以下を使用しますhostname -f
:
hostname -f | sed -e 's/^[^.]*\.//'
IPアドレスの場合は、ifconfig -a
(データを探すinet
)を使用します。マシンにはネットワークデバイスが1つしかない場合は、en0
次のようにします。
ifconfig en0 |awk '/inet / {print $2; }'
すべてのネットワーク デバイスに関心がある場合は、ifconfig -l
デバイスの一覧に注意してください。デバイスと対応するアドレスの一覧は次のとおりです。
#!/bin/sh
for name in $(ifconfig -l)
do
ifconfig $name |awk -v name=$name '/inet / {printf "%s: %s\n", name, $2; }'
done
参考文献:
答え2
使っています
scutil --dns | grep 'search domain' | head -n 1 | grep -o '[a-zA-Z0-9.-]\+$'
これは、状況によってはより適切に機能するようです。ただし、結果は人によって異なります。私はこれを自分のプロファイルで (Mac のみ) のエイリアスにして、dnsdomainname
Linux では ( の代わりにhostname -d
) が機能するようにしています。
答え3
ipconfig getifaddr $(route get 8.8.8.8 | awk '/interface: / {print $2; }')
答え4
「dig」を使用します。whoisに似たコマンドを検索します
dig ホスト名 => ホスト名 + ipaddy の両方
dig ip.address => 完全ではない