我想知道是否可以通过一个命令挖掘获得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查询时,它会返回当时缓存中发生的任何记录.如果名称同时具有记录A和AAAA记录,但服务器最近只查找了A记录,则AAAA记录将不在缓存中,因此它不会返回它们.
此外,还有一项建议允许DNS服务器拒绝回答ANY查询:提供对QTYPE = ANY的DNS查询的最小规模响应.如果查询实现此一台服务器,你可能无法得到一个单一的查询两种反应(尽管在该草案中的建议之一是,一个ANY查询可能只是返回所有MX,A和AAAA,因为这是客户想要的往往是什么).因此,为了获得最佳可靠性,您应该进行两次查询.
现在 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)