ローカルネットワーク上のすべてのホスト/マシン名を表示するための信頼できる方法を見つけようとしています。たとえば、「Jim'sIpad」や「Austi'siMac」などです。現時点で私ができる唯一の方法は、通常は名前が表示されるdhcp要求ログを調べることですが、ネットワーク上のすべての名前を一度にリストする方法があるかどうか疑問に思っていました。 nmap -sP 192.168.1。*を試しましたが、実際のマシン/ドメイン名ではなく、マシンの製造元のみを示しているようです。
MAC Address: 00:1D:BA:40:14:31 (Sony)
Host 192.168.1.109 is up (0.00073s latency).
MAC Address: 00:50:94:C8:1C:02 (Pace Micro Technology PLC)
Host 192.168.1.111 is up (0.00011s latency).
MAC Address: 00:24:8C:EA:F0:7D (Asustek Computer)
Host 192.168.1.112 is up (0.0054s latency).
MAC Address: 00:18:71:5C:D2:BA (Hewlett Packard)
Host 192.168.1.117 is up (0.0049s latency).
Nmap -sL 192.168.1。*も試してみましたが、これはまったく機能していないようです。すべてのIPが一覧表示され、スキャンされていない、追加情報などがないことが示されています。これらのコマンドは、ネットワークのルーター/ゲートウェイとして機能しているDebianサーバーから実行しています。どんな助けでも大歓迎です、ありがとう!
ダイナミックDNSを実行していない場合、またはすべてのマシンにDNSエントリがない場合は、dhcpデータベースが取得するリストと同じくらい優れている可能性があります。 NMAPは、逆引きDNS、AFAIKなしではホストハムを解決しません。 Angry IPスキャナーなどの他のスキャナーは、NetBIOSクエリでwindows/cifsホスト名を取得する場合があります。
簡単なNetBIOSスキャンを行うには、nbtscan 192.168.1.0/24
を指定してnbtscanを使用します。これは、yuorネットワーク上にnetbios対応デバイス(通常はWindows)しかない場合にのみ機能します。
妄想的な(ただしやや遅い)ホスト検出の場合、nmap -p- -PN -A 192.168.1.0/24
を使用して、ネットワークのノードのすべてのポート(-p-)に対して高度な(-A)nmapスキャンを実行できます。
ルーターを制御している場合は、arpテーブルを検査することもできます。これは、ネットワーク上のアクティブノードのリストを取得するための最も確実な方法です。
バインドの代わりに、DNSサーバーのキャッシュとしてdnsmasqを使用できます。また、DHCPサーバーが組み込まれています。 dnsmasqがリースを許可すると、ホスト名が保存されるため、Host
またはnslookup
で検索できます。ホストの完全なリストを取得するには、cat /var/lib/dnsmasq/dnsmasq.leases
。実際のすべてのIPアドレスのリースとホスト名が表示されます。