使用一个命令获取IPv4和IPv6

use*_*265 36 dig

我想知道是否可以通过一个命令挖掘获得IPv4和IPv6地址,以及如何?

例如:dig hostname A - 上面的命令将给出IPv4

挖掘主机名AAAA - 此命令将为我提供IPv6地址

如何通过一个命令获得地址,Ipv4和IPv6?

我陷入了这个问题,如何通过专制查询获得IPv4和IPv6,但只需要一个命令?

任何人都可以帮助我???

小智 53

可能是因为问题已被添加到挖掘中,但为了完整性,可以通过以下查询来完成:

dig hostname A hostname AAAA +short
Run Code Online (Sandbox Code Playgroud)

来源:http://linux.die.net/man/1/dig - 在"多个查询"部分下


Bar*_*mar 38

如果您要查询域的权威服务器,则可以获取包含ANY查询的名称的所有记录:

dig hostname ANY @servername
Run Code Online (Sandbox Code Playgroud)

但是,如果您要查询缓存服务器,这将无法可靠地工作.当缓存服务器响应ANY查询时,它会返回当时缓存中发生的任何记录.如果名称同时具有记录AAAAA记录,但服务器最近只查找了A记录,则AAAA记录将不在缓存中,因此它不会返回它们.

此外,还有一项建议允许DNS服务器拒绝回答ANY查询:提供对QTYPE = ANY的DNS查询的最小规模响应.如果查询实现此一台服务器,你可能无法得到一个单一的查询两种反应(尽管在该草案中的建议之一是,一个ANY查询可能只是返回所有MX,AAAAA,因为这是客户想要的往往是什么).因此,为了获得最佳可靠性,您应该进行两次查询.

  • 请注意,不鼓励"任何人".https://datatracker.ietf.org/doc/draft-ietf-dnsop-refuse-any/?include_text=1和https://blog.cloudflare.com/deprecating-dns-any-meta-query-type/ (4认同)
  • 您可以使用`host`命令.默认情况下,它执行"A","AAAA"和"MX"查询. (2认同)

Fre*_*Ben 8

现在 IPv6 越来越普遍,我发现自己经常需要查询 A 和 AAAA。我似乎永远记不住语法,所以我最终为我的~/.bashrc名为digall. 我与一些朋友分享了它,他们很喜欢它,所以我把它放在 github 上,欢迎任何人使用: https://gist.github.com/FreedomBen/23020c464779bb30cab754d92bdce6c6

这是当前版本,您可以将其放入路径中的文件中并标记为可执行文件:

#!/usr/bin/env bash

#
# To use, simply run `digall <domain>` such as:
#
#   digall example.com
#   digall sub.example.com
#
# Place this file in your PATH.  Suggest either /usr/local/bin/ or ~/bin
#
# Alternatively you can wrap it in a function called `digall` and put in ~/.bashrc
#

# License:  MIT

declare -rx digall_color_restore='\033[0m'
declare -rx digall_color_red='\033[0;31m'
declare -rx digall_color_light_green='\033[1;32m'
declare -rx digall_color_light_blue='\033[1;34m'
declare -rx digall_color_light_cyan='\033[1;36m'

if [ -z "$1" ]; then
  echo -e "${digall_color_red}Error: Please pass domain as first arg${digall_color_restore}"
else
  echo -e "${digall_color_light_blue}Queries: (dig +noall +answer '$1' '<type>')...${digall_color_light_cyan}\n"

  for t in SOA NS SPF TXT MX AAAA A; do
    echo -e "${digall_color_light_green}Querying for $t records...${digall_color_restore}${digall_color_light_cyan}"
    dig +noall +answer "$1" "${t}"
    echo -e "${digall_color_restore}"
  done
fi
Run Code Online (Sandbox Code Playgroud)