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


11

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

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

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

Answers:


25

nslookup,,host和dig是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.