什么是反向DNS命令行工具?

给定IP地址的电脑名称是什么命令?

我总是忘记这个命令是什么,但我知道它存在于Windows中,我认为它存在于* nix命令行上。

    主机应该是你在找什么;)

    http://www.unix.com/unix-dummies-questions-answers/9866-nslookup-linux.html

    在* nix系统上,您可以执行以下命令: dig -x [address]

    或者,您可以在dig命令的末尾添加+short来仅输出dns结果。

    在Windows上 ,使用nslookup

    编辑:nslookup也在* nix系统上工作。 有关nslookup命令的更多信息是否似乎已经被replace了一段时间: http : //linuxreviews.org/man/nslookup/

    在* nix上你可以使用:

     dig -x [address] 

    在我知道的大多数Linux系统上,可以使用:

      nslookup <ip-number EX: 127.0.0.1> 

    将在命令行上工作。

    想想看,是不是Windows XP上的nslookup?

    如果你使用的是nslookup,这是假设192.168.0.1作为IP的问题)

     > set type=ptr > 1.0.168.192.in-addr.arpa 

    编辑:记住一个反向查找只有在为IP创build的PTRlogging时才有效,并且不保证返回您正在查找的主机名。 完全取决于DNS的configuration和维护方式。

    我很清楚dig / host / nslookup是这些工具的标准工具,但为了testing操作系统的分辨率(本质上,要testingnsswitch.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 

    在Windows上,我习惯于使用:

     ping -a <ip address> 

    因为这也会反映来自hosts文件和WINS等的数据。

    电源shell:

     [net.dns]::gethostentry("69.59.196.212").HostName 

    这个问题已经有了一百万个答案,但是我要添加一个答案。 这是我写的一个小function,可以方便地使用dig进行反向DNS。 把这个添加到你的~/.bashrc文件中,重新加载你的shell,然后你可以用revdns 1.2.3.4进行反向DNS查找:

     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)logging来完成的。 如果您想要为“1.2.3.4”反向DNS,则必须查找“4.3.2.1.in-addr.arpa”的指针logging。 我的函数需要一个IP地址,颠倒八位字节的顺序(即将其从1.2.3.4改为4.3.2.1),然后使用dig执行刚刚描述的PTR查找。

    你当然可以使用nslookup 1.2.3.4 ,但是我更喜欢这个基于dig的解决scheme,因为它使用的是操作系统的DNS服务器而不是nslookup提供的(顺便说一句,如果你想的话,你可以当你调用revdns时添加额外的挖标志,他们会被传递到挖掘)

    那么,一些友善的人写了nslookup就是命令,他是对的。 它适用于Unix和Windows。 不知道为什么你删除了你的答案,但你是正确的先生。

    我更喜欢命令行挖掘Windows(可在这里: http : //members.shaw.ca/nicholas.fong/dig/ )nslookup任何一天。

    如果您必须从Windows工作站testing/pipe理DNS,请使用此工具。 然后:

     C:\dig>dig -x <IP Address> 

    还有,记得把c:\ dig添加到你的path!

    尝试“主机”

    • 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. 

    nbtstat -a <ip地址>