AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 7056
Accepted
Peter Turner
Peter Turner
Asked: 2009-05-12 07:52:51 +0800 CST2009-05-12 07:52:51 +0800 CST 2009-05-12 07:52:51 +0800 CST

什么是反向 DNS 命令行实用程序?

  • 772

在给定 IP 地址的情况下查找计算机名称的命令是什么?

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

windows linux domain-name-system command-line-interface reverse-dns
  • 13 13 个回答
  • 119118 Views

13 个回答

  • Voted
  1. Best Answer
    Marc-Andre R.
    2009-05-12T07:54:34+08:002009-05-12T07:54:34+08:00

    命令dig和host应该是你正在寻找的;)

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

    dig -x [address]
    

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

    在 *nix 和 Windows 系统上也有nslookup反向 DNS 请求。

    • 90
  2. palehorse
    2009-05-12T07:56:00+08:002009-05-12T07:56:00+08:00

    在 *nix 上,您可以使用:

    dig -x [address]
    
    • 70
  3. StackzOfZtuff
    2016-02-04T01:52:22+08:002016-02-04T01:52:22+08:00

    试试“主机”

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

    试试“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
    
    • 14
  4. mdpc
    2009-05-13T21:42:28+08:002009-05-13T21:42:28+08:00

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

     nslookup <ip-number EX: 127.0.0.1>
    

    将在命令行上工作。

    想一想,在 Windows XP 上不提供 nslookup 吗?

    • 11
  5. Hayden Schiff
    2016-02-04T11:22:23+08:002016-02-04T11:22:23+08:00

    这个问题已经有一百万个答案了,但我要再添加一个。这是我编写的一个小函数,用于轻松使用 dig 进行反向 DNS。将此添加到您的~/.bashrc文件中,重新加载您的 shell,然后您可以使用以下命令进行反向 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,他们会被传给挖掘)

    • 4
  6. jj33
    2009-05-12T08:41:55+08:002009-05-12T08:41:55+08:00

    我很清楚 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
    
    • 3
  7. David Webb
    2009-05-12T08:53:07+08:002009-05-12T08:53:07+08:00

    在 Windows 上,我养成了使用的习惯:

    ping -a <ip address>
    

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

    • 3
  8. squillman
    2009-05-12T07:57:22+08:002009-05-12T07:57:22+08:00

    如果您使用的是 nslookup,就是这个(假设 192.168.0.1 作为有问题的 IP)

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

    编辑: 请记住,仅当为 IP 创建了 PTR 记录时,反向查找才有效,并且不能保证返回您要查找的主机名。完全取决于在您的情况下如何配置和维护 DNS。

    • 1
  9. Richard
    2009-05-13T02:36:57+08:002009-05-13T02:36:57+08:00

    电源外壳:

    [net.dns]::gethostentry("69.59.196.212").HostName
    
    • 1
  10. Cory J
    2010-01-29T12:43:51+08:002010-01-29T12:43:51+08:00

    我更喜欢 Windows 的命令行 dig(可在此处获得:http: //members.shaw.ca/nicholas.fong/dig/)而不是任何一天的 nslookup。

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

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

    ...另外,请记住将 c:\dig 添加到您的路径!

    • 1

相关问题

  • Vanilla Powershell 是否足以成为 Windows 和 DB 服务器管理员的语言?

  • 为什么添加新驱动器后我的磁盘驱动器访问速度如此之慢?

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

  • 在 Windows Server 2003 下使用 wscipt 从 .asp 文件运行 .exe

  • 最佳混合环境(OS X + Windows)备份?[关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve