LANでは、クロスプラットフォームプログラム(できればnmap)を使用して、接続されているすべてのコンピューターの名前を調べたいと思います。私はできることを知っています
nmap -sn xxx.xxx.xxx.xxx/24
(xxx.xxx.xxx.xxxはローカルIPアドレスです)稼働中のホストを見つけるには、コンピュータのホスト名を見つけるにはどうすればよいですか? nmapを使用して見つけることができる方法でこれをブロードキャストしますか?
PDATE: Angry IP Scannerがこれを実行できるようです。これはどのように行うのですか? nmapで複製できますか?
NmapやAngry IPスキャナーなどの他のIPスキャナーを使用しました。私の観察は、NmapはDNSの逆引きを使用してホスト名を解決するため、DNSサーバーが機能するためにはホストの逆引きポインターレコードが必要であることを確認しました。他のスキャナーは、 Netbiosクエリ。
ターゲットネットワーク上のすべてのホストがWindowsホストであり、NETBIOSが有効になっていることが確実な場合は、 nbtscanツール を使用してそれらをスキャンできます。
Angry IP ScannerのFAQ( " Hostnames not shown ")から:
Angry IP Scannersは、DNS(名前)サーバーから返されたホスト名を 逆引き で表示します。サーバーにはIPアドレスが提供され、ホスト名がわかっている場合はホスト名が返されます。
一部のコンピューターがそれ自体の名前を知っている場合でも、ネットワークのDNSサーバーを提供しているわけではありません。つまり、ホスト自体が知っているホストの名前(ローカル名)と、DNSサーバーが知っているIPアドレスに付加された名前(グローバル名)が常に一致するとは限りません。
多くの場合、DNSクエリはいくつかの一般的な名前を返します。 dhcp-12-13.superisp.com、特にISPネットワークで。
次のいずれかの場合に名前が一致します。
- コンピュータが名前をDHCPサーバーに送信し、そこからIPアドレスを取得し、DHCPサーバーがローカルDNSサーバーに名前を提供した
- 静的IPアドレスがあり、ローカルホスト名がネットワークのグローバル命名規則に一致するルールに従って構成されている
- ホストのTCPスタックは、ローカルIPアドレスが照会されるとローカル名を返し、グローバル名を要求しません
Nmapのドキュメントから( " Host Discovery "):
デフォルトでは、ホストでNmapは 逆DNS解決 を実行して、ホスト名を学習します。
ネットワーク上のマシンの名前を取得するには、--system-dns
を指定する必要があることがわかりました。これが機能する理由はわかりません。 DNSの構成方法に予期しない何かがあるのでしょうか?
PDATE:実際には、1つのVLANでは機能しますが、別の機能では機能しませんが、Angry IP Scannerは両方で機能します。
nmap -A xxx.xxx.xxx.xxx
を使用することもできます。出力にホスト名が表示されます。私のネットワークでは、それをgrepにパイプして、必要な情報だけを取得します。 〜grep -e 'scan report' -e 'Computer name'