ネットワーク上のIPに関連付けられたホスト名をどのように判断できますか? (逆引きDNSを構成せずに)
これは不可能だと思っていた。ただし、携帯電話で Fing を使用しています。 (おそらくarp-scanを使用して)ネットワーク上のすべてのデバイスを検出し、ホスト名とともにリストすることができます。
たとえば、このアプリは、ホームルーターに接続された、新しくインストールされたDebian Linuxデバイスを見つけることができます。逆DNSはありません。
私が知る限り、 ping も Neighbor Discovery も arp もホスト名を含みません。では、fingは、新しくインストールされたLinux PCでこれをどのように取得できるのでしょうか。 Linuxマシン上の他のどのプロトコルがマシンの構成されたホスト名を提供しますか?
zeroconf プロトコルスイート( Wikipedia )がこの情報を提供できます。
最もよく知られている実装は、AllJoyn(Windowsおよびその他)、Bonjour(Apple)、Avahi(UNIX/Linux)です。
LAN上のすべてのリストを表示する例(この場合はあまりありません):
avahi-browse --all --terminate
+ ens18 IPv6 Canon MG6650 _privet._tcp local
+ ens18 IPv4 Canon MG6650 _privet._tcp local
+ ens18 IPv6 Canon MG6650 Internet Printer local
+ ens18 IPv4 Canon MG6650 Internet Printer local
+ ens18 IPv6 Canon MG6650 UNIX Printer local
+ ens18 IPv4 Canon MG6650 UNIX Printer local
+ ens18 IPv6 Canon MG6650 _scanner._tcp local
+ ens18 IPv4 Canon MG6650 _scanner._tcp local
+ ens18 IPv6 Canon MG6650 _Canon-bjnp1._tcp local
+ ens18 IPv4 Canon MG6650 _Canon-bjnp1._tcp local
+ ens18 IPv6 Canon MG6650 Web Site local
+ ens18 IPv4 Canon MG6650 Web Site local
+ ens18 IPv6 SERVER _device-info._tcp local
+ ens18 IPv4 SERVER _device-info._tcp local
+ ens18 IPv6 SERVER Microsoft Windows Network local
+ ens18 IPv4 SERVER Microsoft Windows Network local
具体的には、avahi-resolve-address
アドレスを名前に解決します。
例
avahi-resolve-address 192.168.1.254
192.168.1.254 router.roaima...
Linuxでは、Dig
またはHost
を使用できます。例:
Dig -x 192.0.2.1
Host 192.0.2.1
Windowsでは、次のようにping -a
を使用できます。
ping -a 192.0.2.1