我在一个拥有数千台仪器的大型网络上工作,有时,我希望我能使用类似的命令$locate --hostname dawar
来查找有关网络上名为“dawar”的计算机的 IP 和完整主机名的信息。我编写了一个使用弃用的 C 函数 gethostsbyname 和 gethostsbyaddress 的小程序,我想我可以编写一个搜索函数。但我很好奇是否有一个类似的程序可以搜索名称服务器,...我不必编写。
或者,C 语言中等效的 gethostbyname 的非贬值函数是什么?
这是 nslookup 的输出,考虑到输出的外观,我不想使用它;
nslookup 123.111.129.108
Server: 127.0.1.1
Address: 127.0.1.1#53
108.129.111.123.in-addr.arpa name = RM135.domain.
答案1
看看“dig”实用程序
> # dig google.com
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6 <<>> google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8753
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;google.com. IN A
;; ANSWER SECTION:
google.com. 120 IN A 209.85.202.100
google.com. 120 IN A 209.85.202.139
google.com. 120 IN A 209.85.202.102
google.com. 120 IN A 209.85.202.101
google.com. 120 IN A 209.85.202.113
google.com. 120 IN A 209.85.202.138
;; Query time: 1 msec
;; SERVER: 192.168.0.228#53(192.168.0.228)
;; WHEN: Thu Oct 27 14:43:06 2016
;; MSG SIZE rcvd: 124
答案2
nslookup dawar
或getent hosts dawar
可能满足您的目的,具体取决于具体用例。两者都假设可以从中指定的搜索域获取 FQDN /etc/resolv.conf
。nslookup
也可以进行反向查找,但我不确定getent
。还有更强大的dig
命令,如果我没记错的话,是hosts
命令。