命令行域名查找(DNS)的首选方法是什么?


11

我使用什么命令行命令来查找域地址?

在查看nslookup和dig的手册页时,我可以看到有一节说这些实用程序没有使用Mac OS的名称查找方法。

那么,我应该运行什么命令?

Answers:


25

nslookup,,hostdig是OS X中非常好的DNS查询工具,但它们都直接查询DNS,而不是通过OS X的内部解析系统。因此,他们不会检查/ etc / hosts文件,也不会解析Bonjour / mDNS名称(以.local结尾的名称)。测试解析度的标准方法(快速进行)是ping因为,因为它会在尝试ping之前通过通常的系统解析您提供的地址。如果您想要某种用途,请dscacheutil改用:

$ dscacheutil -q host -a name www.apple.com
name: e3191.c.akamaiedge.net
alias: www.apple.com www.isg-apple.com.akadns.net www.apple.com.edgekey.net 
ip_address: 184.24.141.15

$ ping www.apple.com
PING e3191.c.akamaiedge.net (184.24.141.15): 56 data bytes
64 bytes from 184.24.141.15: icmp_seq=0 ttl=57 time=57.258 ms
^C
--- e3191.c.akamaiedge.net ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 57.258/57.258/57.258/0.000 ms

荣誉 :我已经递交了雷达的手册页应该是更清楚openradar.me/radar?id=5038477976535040
索伦Kuklau

使用dscacheutil进行查找的一个问题是,如果它无法解析主机名,则不会像host一样以非零的返回码退出。
gurple

为了克服有用的返回代码的不足,我创建了一个最基本的shell脚本来补充标准的“ host”命令。 #!/usr/bin/env bash STAT=1 LOOKUPRESULT="$(dscacheutil -q host -a name "$1")" if [ -z "$LOOKUPRESULT" ] ; then exit "$STAT" else echo "$LOOKUPRESULT" STAT=0 exit "$STAT" fi
gurple

4

两种命令都可以正常工作。仅仅因为它没有使用OS X的方法,并不意味着它不起作用。如果要使用“ OS X方法”,是否可以推荐网络实用程序?

在此处输入图片说明

这可能仍称为whois并仅在窗口中显示它。


我猜这对.local地址不起作用,对吗?
Piotr Findeisen

不,这不适用于.local地址。这使用公共whois服务器,并且.local地址不会在此处发布。
Everett
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.