web-dev-qa-db-ja.com

DNSを使用せずにLinuxのホスト名をリモートで見つける方法は?

LAN上のリモートLinuxマシンのホスト名がどのようになっているのかを知りたい場合、SSHなどを介してアクセスできない場合、どうすればこれを達成できますか?

おそらくLinuxがWINS=ドメインの一部であるかどうかに依存します。

8
JohnnyFromBF

hostnameという用語をより厳密に指定する必要があります。使用したくないDNSサーバーに既知の名前を探している場合、実際にそのDNSサーバーに問い合わせる以外に方法はありません。

単純に推測している場合は、 nmap が役立ちます。たとえば、そのサーバーでsmbdが実行されている場合、nmap -Aの出力は次のようになります。

Host script results:
| smb-security-mode:
|   Account that was used for smb scripts: guest
|   User-level authentication
|   SMB Security: Challenge/response passwords supported
|_  Message signing disabled (dangerous, but default)
|_smbv2-enabled: Server doesn't support SMBv2 protocol
|_nbstat: NetBIOS name: FOOBAR, NetBIOS user: <unknown>, NetBIOS MAC: <unknown>
| smb-os-discovery:
|   OS: Unix (Samba 3.5.6)
|   Computer name: foobar
|   Domain name: lan
|   FQDN: foobar.lan
|   NetBIOS computer name:
|_  System time: 2013-03-14 17:02:27 UTC+1

他のサービスもマシンの名前についてのヒントを与えるかもしれません。

6
barbaz

DNSサーバーがない場合、これは機能する可能性があります。

traceroute 1.2.3.4

あるいは、問題のサーバーがSamba共有をエクスポートしている場合は、次のようにすることができます。

smbclient -L 1.2.3.4

これは、LAN上に必要な情報を備えたDNSサーバーが設定されているかどうかによって異なります。その場合、このコマンドは必要なことを実行するはずです。

nslookup 1.2.3.4

または

Host 1.2.3.4

最後に、別の便利なコマンドは

arp -a
3
terdon

Fingerd(およびxinetd)はセットアップが簡単で、メンテナンスは不要です。

 $ finger [email protected] 
 [10.3.0.3:79]

tryggve.lanでLinuxバージョン3.5.7-12-tryggveへようこそ! 
(...)