What is the Solaris equivalent of the Linux hostname -f command? On Solaris, when I type hostname, I receive the short name but I need to get the FQDN.

Typing hostname -f sets the short name to be "-f", and the manpage for hostname is pitiful.

link|improve this question

65% accept rate
/etc/nodename just lists shortname for the server. The /etc/hostname.* files are all giving me an error when I try to cat them :( – Matthew Nov 18 '11 at 18:48
What errors do you get with /etc/hostname.if? If those are corrupted then you have bigger problems. – James O'Gorman Dec 6 '11 at 20:27
feedback

2 Answers

This is likely to work:

perl -mNet::Domain -e 'print Net::Domain::hostfqdn(), "\n"'

but it's not guaranteed. You can view the module source:

perldoc -m Net::Domain

to see how it works (if you know Perl well enough).

link|improve this answer
feedback

If you are on a system that the DNS knows about, you could try this:

bash-3.00# nslookup `hostname` | grep 'Name:' | awk '{print $2}'
ep60.bar.foo.com

or, as suggested by a commenter, use "host" instead of nslookup:

host $(hostname) | cut -d" " -f1

I tested this successfully on Linux, Solaris, AIX, and HP-UX.

link|improve this answer
nslookup has been deprecated for a long time. host or dig are preferred and would involve fewer pipes: host $(hostname) | cut -d" " -f1 – James O'Gorman Dec 6 '11 at 20:26
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.