すでに知っている事と、先人たちのシェルスクリプトを眺めていると、一般的にはifconfig をパース(と言うかは知らないが)してIP アドレスを得たりしているようだ。何気なくhostname コマンドを見ると、IP アドレスを取得できることがわかった。しかし、バージョンによっても差異があるようなので、メモしておく。(画像はテキトー)
スポンサードリンク
コマンド概要
以下はUbuntu(たぶん12.04)にインストールされていたhostname のもので、バージョンはhostname 3.06 となっている。このバージョンでは、ありがたいことにI が利用でき、複数のIP アドレスを列挙することが可能になっているようだ。(逆に言うと、先人たちのスクリプトでは、古いバージョンに対応するためor その機能がなかったから、ifconfig から情報を取得しているのかもしれない)
$ hostname -h Usage: hostname [-v] [-b] {hostname|-F file} set host name (from file) hostname [-v] [-d|-f|-s|-a|-i|-y|-A|-I] display formatted name hostname [-v] display host name {yp,nis,}domainname [-v] {nisdomain|-F file} set NIS domain name (from file) {yp,nis,}domainname [-v] display NIS domain name dnsdomainname [-v] display dns domain name hostname -V|--version|-h|--help print info and exit Program name: {yp,nis,}domainname=hostname -y dnsdomainname=hostname -d Program options: -s, --short short host name -a, --alias alias names -i, --ip-address addresses for the host name -I, --all-ip-addresses all addresses for the host -f, --fqdn, --long long host name (FQDN) -A, --all-fqdns all long host names (FQDNs) -d, --domain DNS domain name -y, --yp, --nis NIS/YP domain name -b, --boot set default hostname if none available -F, --file read host name or NIS domain name from given file Description: This command can get or set the host name or the NIS domain name. You can also get the DNS domain or the FQDN (fully qualified domain name). Unless you are using bind or NIS for host lookups you can change the FQDN (Fully Qualified Domain Name) and the DNS domain name (which is part of the FQDN) in the /etc/hosts file.
使用例
Ubuntu 12.04 LTS
$ hostname -i 127.0.1.1
$ hostname -s vmXXX
$ hostname -a
$ hostname -I 192.168.1.2 192.168.122.1
$ hostname -f vmXXX
$ hostname -A test.example.com vmXXX.local
$ hostname -d
$ hostname -y hostname: Local domain name not set
$ hostname -b vmXXX
$ hostname -F
$ hostname -v vmXXX
$ hostname -V hostname 3.06
CentOS release 5.8 (Final)
CentOS release 5.8 (Final) では、net-tools 1.60, hostname 1.100 (2001-04-14) となっており、念のため確認したが、これが最新版だと表示されていた。(比較のため、存在しないものも実行している)
# hostname -h Usage: hostname [-v] {hostname|-F file} set hostname (from file) domainname [-v] {nisdomain|-F file} set NIS domainname (from file) hostname [-v] [-d|-f|-s|-a|-i|-y|-n] display formatted name hostname [-v] display hostname hostname -V|--version|-h|--help print info and exit dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y -s, --short short host name -a, --alias alias names -i, --ip-address addresses for the hostname -f, --fqdn, --long long host name (FQDN) -d, --domain DNS domain name -y, --yp, --nis NIS/YP domainname -F, --file read hostname or NIS domainname from given file This command can read or set the hostname or the NIS domainname. You can also read the DNS domain or the FQDN (fully qualified domain name). Unless you are using bind or NIS for host lookups you can change the FQDN (Fully Qualified Domain Name) and the DNS domain name (which is part of the FQDN) in the /etc/hosts file.
# hostname example.com
# hostname -s example
# hostname -a localhost localhost.localdomain
# hostname -i 127.0.0.1
# hostname -I hostname: オプションが違います -- I
# hostname -A hostname: オプションが違います -- A
# hostname -d jp
# hostname -y (none)
# hostname -b hostname: オプションが違います -- b
# hostname -F hostname: オプションには引数が必要です -- F
# hostname -V net-tools 1.60 hostname 1.100 (2001-04-14)
# hostname -v gethostname()=`example.jp' example.jp
–
コメント