マルチキャストDNSを介してIPからマシン名を取得するにはどうすればよいですか?


17

ネットワーク上のIPアドレスのリストがあり、それらのほとんどがマルチキャストDNSをサポートしています。IPアドレスだけでなく、サーバー名を解決できるようにしたいです。

ping computer.local
64 bytes from 192.168.0.52: icmp_seq=1 ttl=64 time=5.510 ms
64 bytes from 192.168.0.52: icmp_seq=2 ttl=64 time=5.396 ms
64 bytes from 192.168.0.52: icmp_seq=3 ttl=64 time=5.273 ms

動作しますが、IPからその名前を判別できるようにしたいと思います。また、デバイスは必ずしもサービスをブロードキャストするわけではありませんが、mDNSブロードキャストをサポートしています。そのため、サービスを調べても機能しません。


1
どのOSを使用していますか? mdns-scanはLinuxのオプションのようです。
ゾレダチェ

1
OS Xですが、Linuxソリューションを入手できれば、Macの世界でアナログを見つけることができると確信しています。mdns-scanはブロードキャストされたサービスを探すため、機能しません。一部のデバイスはサービスをブロードキャストしませんが、名前で照会するとアドレスを解決します。
アダム

回答:


23

すでにIPアドレスを知っているので、各IPアドレスのリバースエントリを検索して、関連するフォワードアドレスを取得できます。

$ dig -x 10.0.0.200 @224.0.0.251 -p 5353

; <<>> DiG 9.6.0-APPLE-P2 <<>> -x 10.0.0.200 @224.0.0.251 -p 5353
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54300
;; flags: qr aa; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; QUESTION SECTION:
;200.0.0.10.in-addr.arpa.   IN  PTR

;; ANSWER SECTION:
200.0.0.10.in-addr.arpa. 10 IN  PTR atj-mbp.local.

;; ADDITIONAL SECTION:
atj-mbp._device-info._tcp.local. 10 IN  TXT "model=MacBookPro3,1"

;; Query time: 2 msec
;; SERVER: 10.0.0.200#5353(224.0.0.251)
;; WHEN: Sat Jun 26 07:53:44 2010
;; MSG SIZE  rcvd: 126

シェルスクリプトフレンドリーな出力には、「+ short」を使用します。

$ dig +short -x 10.0.0.200 @224.0.0.251 -p 5353
atj-mbp.local.

使用目的に応じて、クエリを実行するより適切な方法があります。さらに情報が必要な場合は、お気軽にご連絡ください。


2
Bonjourサービスを実行していないiOSデバイスに対してこれが失敗する理由は何ですか?Bonjourサービスを実行していないMacに対して機能します。
ジョンライト

arp-scanhomebrewまたはmacportsからインストールしたものを使用して、ネットワーク上にあるIPアドレスを調べることもできます。または、ネットワーク上のホストの雰囲気を取得したいだけの場合は、OS Xに既にあるコマンドを使用して現在のARPテーブルを確認できますarp。具体的には、コマンドを使用できますarp -n -i <interface> -l -a。ここ<interface>で、知りたいネットワークインターフェイスの名前を指定する必要があります(例:)en0
パルティアショット

5

Linuxでは、libcからgetentコマンドを使用できます。

getent hosts 192.168.0.52

または、avahi-utilsをインストールして実行します

avahi-resolve-address 192.168.0.52

パッケージはavahi-toolsFedoraにあり、このページで機能したのはそれだけです:)
Navin


-1

さて、私はこれについてもう少し研究をしました。mDNDSとプロトコルを調べてみると、これは実際には不可能なようです。プロトコルには名前検索のためのルックアップ要求があります。したがって、名前を要求すると適切なクライアントが応答しますが、IPのルックアップ要求はありません。住所の中央ストアもありません。

これを追跡するのにあまりにも多くの時間を費やしてきたので、これが他の誰かを助けることを願っています。

誰かがこの問題について他のアイデアを持っているなら、私はemを聞くのが大好きです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.