给定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地址>