Answers:
挖掘和托管应该是您想要的;)
http://www.unix.com/unix-dummies-questions-answers/9866-nslookup-linux.html
在* nix系统上,您可以执行以下命令:
dig -x [address]
或者,您可以+short
在dig
命令末尾添加仅输出dns结果。
在Windows上,使用nslookup
编辑:nslookup也可以在* nix系统上工作。关于nslookup命令的更多信息,是否一段时间以来似乎已被替换:http : //linuxreviews.org/man/nslookup/
在* nix上,您可以使用:
dig -x [address]
dig -x [address] +short
+short
标志真的有用!
man dig
,addr是点分十进制表示形式的IPv4地址或冒号分隔的IPv6地址。
我知道您可以在大多数Linux系统上使用:
nslookup <ip-number EX: 127.0.0.1>
将在命令行上工作。
想一想,nslookup在Windows XP上不可用吗?
这个问题已经有百万个答案,但我要再添加一个。这是我编写的一个小功能,用于通过挖掘轻松进行反向DNS。将此添加到~/.bashrc
文件中,重新加载外壳程序,然后可以使用以下命令进行反向DNS查找revdns 1.2.3.4
:
function revdns() {
octets=""
addr="in-addr.arpa"
# split the IP address into an array of octets
IFS="." read -r -a octets <<< "$1"
# add each octet to our $addr string in reverse order
for octet in "${octets[@]}"; do
addr=$octet"."$addr
done
# run a DNS pointer lookup with dig
# `+short` makes dig's output very terse (un-verbose)
# `"${@:2}"` passes any extra params from this command to dig
dig ptr +short $addr "${@:2}"
}
反向DNS查找通过检查指针(PTR)记录来完成。如果要对“ 1.2.3.4”进行反向DNS,则必须查找“ 4.3.2.1.in-addr.arpa”的指针记录。我的函数获取一个IP地址,反转八位字节的顺序(即,将其从1.2.3.4更改为4.3.2.1),然后用于dig
执行我刚刚描述的PTR查找。
当然,您可以使用nslookup 1.2.3.4
它,但是我更喜欢这种基于dig的解决方案,因为它使用操作系统的DNS服务器而不是nslookup提供的服务器(如果需要,您可以添加其他dig标志)当您致电时revdns
,他们会被传递给dig)
dig -x dot-notation
是“反向查找的快捷方式”。我想知道长版本会是什么。感谢您的解释!:)
man dig
: 使用-x时,无需提供名称,类和类型参数。dig自动为94.2.0.192.in-addr.arpa之类的名称执行查找,并将查询类型和类分别设置为PTR和IN。
我很清楚dig / host / nslookup是用于这些工具的标准工具,但我一直使用它们来测试操作系统的分辨率(本质上是为了测试nsswitch.conf是否正常工作):
gethostbyname:
#!/usr/bin/perl
use Socket;
my @t = gethostbyname($ARGV[0]);
print "\$name = $t[0]\n"; shift(@t);
print "\$aliases = $t[0]\n"; shift(@t);
print "\$addrtype = $t[0]\n"; shift(@t);
print "\$length = $t[0]\n"; shift(@t);
foreach (@t) {
print " = ", inet_ntoa($_), "\n";
}
gethostbyaddr:
#!/usr/bin/perl
use Socket;
my @t = gethostbyaddr(inet_aton($ARGV[0]), AF_INET);
print "\$name = $t[0]\n"; shift(@t);
print "\$aliases = $t[0]\n"; shift(@t);
print "\$addrtype = $t[0]\n"; shift(@t);
print "\$length = $t[0]\n"; shift(@t);
foreach (@t) {
print " = ", inet_ntoa($_), "\n";
}
例:
g3 0 /home/jj33/swap > gethostbyname www.google.com
$name = www.l.google.com
$aliases = www.google.com
$addrtype = 2
$length = 4
= 72.14.205.147
= 72.14.205.103
= 72.14.205.104
= 72.14.205.99
g3 0 /home/jj33/swap > gethostbyaddr 72.14.205.147
$name = qb-in-f147.google.com
$aliases =
$addrtype = 2
$length = 4
= 72.14.205.147
向前查询host
:
$ host google-public-dns-b.google.com.
google-public-dns-b.google.com has address 8.8.4.4
google-public-dns-b.google.com has IPv6 address 2001:4860:4860::8844
反向查询host
:
$ host 8.8.4.4
4.4.8.8.in-addr.arpa domain name pointer google-public-dns-b.google.com.
向前查询dig
:
$ dig google-public-dns-b.google.com. +short
8.8.4.4
反向查询dig
:
$ dig -x 8.8.4.4 +short
google-public-dns-b.google.com.
好吧,一个友好的人刚刚写了nslookup是命令,他是对的。它在Unix和Windows上均可使用。不知道为什么删除答案,但是您是正确的先生。
我更喜欢Windows的命令行挖掘(可在此处找到:http : //members.shaw.ca/nicholas.fong/dig/)而不是nslookup。
如果必须从Windows工作站测试/管理DNS,请抓住此工具。然后:
C:\dig>dig -x <IP Address>
...此外,请记住将c:\ dig添加到您的路径中!
drill
ldns 的实用程序也可以使用相同的语法,即drill -x 123.123.123.123