#!/bin/ksh
##
## Display the DNS domain name of the host
## Copyright (c) 2010 SATOH Fumiyasu @ OSS Technology. Inc.
##               <http://www.osstech.co.jp/>
##
## License: GNU General Public License version 2 or later
## Date: 2010-02-11, since 2010-02-11
##

set -u
export LC_ALL="C"

hostname=$(hostname)

domainname="${hostname#*.}"
if [ -n "$domainname" ] && [ X"$domainname" != X"$hostname" ]; then
  echo "$domainname"
  exit 0
fi

if [ -r /etc/resolv.conf ]; then
  while read -r name value discard; do
    case "$name" in
    domain)
      if [ -n "$value" ]; then
	echo "$value"
	exit 0
      fi
      ;;
    search)
      search_domain="$value"
      ;;
    esac
  done </etc/resolv.conf
fi

host "$hostname" \
|sed -n 's/^[^ ]* has address //p' \
|while read -r ipaddress; do
  fqdn=$(host "$ipaddress" |sed -n '/^[^ ]* domain name pointer /{s/.* //;p;q;}')
  [ -z "$fqdn" ] && continue
  domainname="${fqdn#*.}"
  if [ -n "$domainname" ] && [ X"$domainname" != X"$fqdn" ]; then
    echo "${domainname%.}"
    exit 0
  fi
done

if [ -n "${search_domain+set}" ]; then
  echo "$search_domain"
  exit 0
fi

exit 1

