尝试“主持”

尝试“主持”

根据 IP 地址查找计算机名称的命令是什么?

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

答案1

命令dighost应该就是你要找的;)

在 *nix 系统上,您可以使用此命令:

dig -x [address]

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

还有nslookup在 *nix 和 Windows 系统上均可用于反向 DNS 请求。

答案2

在 *nix 上,您可以使用:

dig -x [address]

答案3

尝试“主持”

  • 正向查找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

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

顺便说一句:dig它对命令行选项的排序很挑剔:

  • dig -x 8.8.4.4 +short作品。
  • dig +short -x 8.8.4.4作品。
  • dig -x +short 8.8.4.4不起作用。

尝试“rdt”

这需要一些额外的设置。但是如果你这样做了,那么你就可以从命令行运行这个“rdt”PHP 脚本,这真是太棒了。它在正向查找和反向查找之间进行几次来回往返。

从这里下载:https://github.com/grawity/code/blob/master/net/rdt

示例。它工作时的样子如下:

$ rdt google-public-dns-b.google.com.
google-public-dns-b.google.com. = 2001:4860:4860::8844, 8.8.4.4
   2001:4860:4860::8844 = dns.google
      dns.google = 2001:4860:4860::8844, 2001:4860:4860::8888, 8.8.4.4, 8.8.8.8
         2001:4860:4860::8888 = dns.google
         8.8.8.8 = dns.google
   8.8.4.4 = dns.google

答案4

我很清楚 dig/host/nslookup 是这些的标准工具,但我保留它们是为了测试操作系统的分辨率(本质上是为了测试 nsswitch.conf 是否正常工作):

获取主机名:

#!/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";
}

获取主机地址:

#!/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

相关内容