
すでに知っている事と、先人たちのシェルスクリプトを眺めていると、一般的には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
–


コメント