dig (DNS Lookup) 在 Windows 上指定 DNS 服务器

Posted

技术标签:

【中文标题】dig (DNS Lookup) 在 Windows 上指定 DNS 服务器【英文标题】:dig (DNS Lookup) specify DNS server on Windows 【发布时间】:2016-08-05 02:43:14 【问题描述】:

在 Linux 中,我会使用 dig 指定 DNS 服务器为 127.0.0.1,并使用以下命令:

dig google.com @127.0.0.1

我为 windows (choco install bind-toolsonly) 安装了绑定工具。如何运行相同的命令?我收到以下错误:

PS C:\Users\jhilden> 挖掘 google.com @127.0.0.1
在行:1 字符:21
+ 挖掘 google.com @127.0.0.1
+ ~
引用运算符后缺少属性名称。
在行:1 字符:16
+ 挖掘 google.com @127.0.0.1
+ ~~~~
喷溅运算符“@”不能用于引用
表达。 '@127' 只能用作命令的参数。到
表达式中的引用变量使用“$127”。
    + CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : MissingPropertyName

【问题讨论】:

【参考方案1】:

我知道这个答案不使用绑定工具,正如您在问题中推断的那样。尽管如此,PowerShell 附带了Resolve-DnsName 来执行此任务。我相信下面的命令会做你所追求的

Resolve-DnsName -Name google.com -Server 127.0.0.1

【讨论】:

@r590 经调查,Resolve-DnsName 似乎是在 PowerShell 3.0 中添加的,因此仅适用于 Windows 8+ / Windows Server 2012+_ 请注意,WMF 5.1(包括 PowerShell 5.1)已向后移植到 Windows 7 SP1 - 因此任何 W7SP1、Server 2008R2SP1 或更高版本都应该能够运行全套 PowerShell 命令。跨度> 这不支持port。还有其他可能吗? Reference doc【参考方案2】:

就像错误消息所说:@ 在 PowerShell 中有一个 special meaning。逃脱角色

dig google.com `@127.0.0.1

或将参数放在引号中

dig google.com "@127.0.0.1"

【讨论】:

【参考方案3】:

我认为你的参数是倒退的。服务器应该是第一位的。

【讨论】:

不。参数顺序在这里无关紧要。

以上是关于dig (DNS Lookup) 在 Windows 上指定 DNS 服务器的主要内容,如果未能解决你的问题,请参考以下文章

window 下安装 dig 命令

装了个DNS,dig命令怎么用

《dig挖出DNS的秘密》-linux命令五分钟系列之三十四

使用dig查询dns解析

dig查询dns解析

使用dig查询dns解析