what is the easiest way to get a host's canonical host name from linux's command line?
If it matters, my shell is bash.
CLARIFICATION: I want another host's canonical hostname, either by ip or by non canonical hostname. Not the local host's canonical hostname.
Use
dig(1)
. For normal lookups use:and for reverse lookups use:
Also check the man page for much more cool options.
A remote host's node name bears no necessary relationship to any of its network names. You'll have to log in and use the
hostname
command.If you're looking for the Fully Qualified Domain Name (FQDN) of a network address, you can use DNS query tools like
dig
ornslookup
, as described by @firm and @Richard Holloway.To be clear,
hostname
will just return the short name. Use the-f
parameter;hostname -f
to get the fully qualified name.You could use also the host command. Like in this example
The result will be something like
To find the fqdn of a remote host with IP xxx.xxx.xxx.xxx you can use
and see the answer contains
There is no "reverse lookup" for canonical names. That is: given an A record, there is no way to get a listing of what CNAME records point to it.
Here's the command:
hostname
You can look up the IP address by name, and then look up the name for that IP address. To do that in one command:
This doesn't work for all sites.