如何通过本地网络中的主机名查找IP地址?

Man*_*are 5 unix linux shell networking android

我想IP Address通过他们hostname在本地网络中找到设备。市场上的许多应用程序都这样做。它同时提供IP Addressand hostname, like FingIP Tools等等。但我仍然无法IP Addresshostname.

我可以通过使用,和命令找到IP,请参见以下命令:hostnamedigarppingubuntu OS 14.04

dig @224.0.0.251 -p 5353 example.local

这个命令给了我这样的输出:

 ; <<>> DiG 9.9.5-3ubuntu0.8-Ubuntu <<>> @224.0.0.251 -p 5353 example.local
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56566
;; flags: qr aa; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;example.local.         IN  A

;; ANSWER SECTION:
example.local.      10  IN  A   192.168.0.142

;; Query time: 0 msec
;; SERVER: 192.168.0.142#5353(224.0.0.251)
;; WHEN: Mon May 30 17:01:06 IST 2016
;; MSG SIZE  rcvd: 47
Run Code Online (Sandbox Code Playgroud)

那个具体ANSWER SECTION让我ip反对hostname。也当我使用以下命令时:

arp -vn example.local

它给了我以下输出:

Entries: 4  Skipped: 4  Found: 0
example.local (192.168.0.142) -- no entry
Run Code Online (Sandbox Code Playgroud)

同样,当我用他们的设备 ping 设备时 hostname

ping example.local

它也给了我IP Address

PING example.local (192.168.0.142) 56(84) bytes of data.
64 bytes from 192.168.0.142: icmp_seq=1 ttl=64 time=0.033 ms
64 bytes from 192.168.0.142: icmp_seq=2 ttl=64 time=0.059 ms
64 bytes from 192.168.0.142: icmp_seq=3 ttl=64 time=0.045 ms
64 bytes from 192.168.0.142: icmp_seq=4 ttl=64 time=0.060 ms
64 bytes from 192.168.0.142: icmp_seq=5 ttl=64 time=0.069 ms
Run Code Online (Sandbox Code Playgroud)

但是当我在 上执行上述命令时adb shell,大部分命令都找不到。arp并且dig在android中不存在。当我使用他们的 adb shell ping 设备时hostname,它给了我以下错误:

ping: unknown host example.local

但是当我ping通ip设备时,它成功ping通:

$ ping 192.168.0.142                                         
PING 192.168.0.142 (192.168.0.142) 56(84) bytes of data.
64 bytes from 192.168.0.142: icmp_seq=1 ttl=64 time=263 ms
64 bytes from 192.168.0.142: icmp_seq=2 ttl=64 time=231 ms
64 bytes from 192.168.0.142: icmp_seq=3 ttl=64 time=1.82 ms
64 bytes from 192.168.0.142: icmp_seq=4 ttl=64 time=1.99 ms
64 bytes from 192.168.0.142: icmp_seq=5 ttl=64 time=122 ms
64 bytes from 192.168.0.142: icmp_seq=6 ttl=64 time=5.63 ms
Run Code Online (Sandbox Code Playgroud)

以上事情是在同一个网络中完成的,但我仍然没有IP通过hostname(当我使用来自 的相同命令时adb shell)。我如何才能找到IP通过他们hostnameandroid使用设备adb shell
有谁知道我做错了什么?

小智 0

我们可以运行 ping 命令如下

hostname -f

从括号中的输出我们可以看到机器的IP地址